Iterar elementos de una matriz sin bucles
Last updated: 28.08.2025
Views: 247
Los ejemplos son muy abstractos debido a que hay ciclos. Nuestra condición será la siguiente: es necesario seleccionar todos los elementos del array mediante un atributo dado. O, dicho de forma más precisa, es necesario filtrar el array. Existen varias soluciones.
La opción más adecuada en PHP es usar la función integrada array_filter(). Imaginemos que esta tampoco existe. La escribimos mediante recursión.
En PHP, la función se ve así:
PHP
function getArrayElements($arr, $pattern) {
static $i = 0;
static $arrayResult = [];
if (preg_match($pattern, $arr[$i])) {
$arrayResult[] = $arr[$i];
}
$i++;
if (count($arr) == $i) {
return;
} else {
getArrayElements($arr, $pattern);
}
return $arrayResult;
}
Ejemplo:
PHP
$arr = ['a', 'xd', 'w', 1, 'y', 'x']; $pattern = '/^x/'; print_r(getArrayElements($arr, $pattern)); // Array ( [0] => xd [1] => x )
Ahora veamos lo mismo en JavaScript. En JS, un array tiene un método filter() similar. Intentemos prescindir de él y usar la recursión.
JavaScript
let i = 0,
arrayResult = [];
function getArrayElements(arr, pattern) {
if (pattern.test(arr[i])) {
arrayResult.push(arr[i]);
}
i++;
if (arr.length == i) {
return;
} else {
getArrayElements(arr, pattern);
}
return arrayResult;
}
Ejemplo:
JavaScript
const arr = ['a', 'xd', 'w', 1, 'y', 'x'],
pattern = /^x/;
console.log(getArrayElements(arr, pattern)); //["xd", "x"]
Publicaciones similares:
-
Cómo detectar la dirección de desplazamiento en una página usando JavaScript
A veces es necesario detectar la dirección del desplazamiento vertical en un sitio web para modificar dinámicamente el comportamiento de los elementos de la interfaz. Por...
-
Temporizador de cuenta regresiva en JavaScript
Los temporizadores de cuenta regresiva se utilizan comúnmente en sitios web que promocionan productos, servicios u ofertas especiales. Es frecuente verlos en páginas de d...
-
Cómo detectar el sistema operativo (OS) mediante JavaScript
A veces es necesario detectar el sistema operativo del usuario al desarrollar aplicaciones web o sitios web. Esto puede ser útil para aplicar diferentes estilos CSS, reco...
Leave a Reply