Iterar elementos de una matriz sin bucles
Last updated: 28.08.2025
Views: 218
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:
-
Almacenamiento en caché de datos en un archivo mediante PHP
A veces es necesario limitar el número de solicitudes a una fuente de datos externa, especialmente cuando los datos no cambian con frecuencia. Por ejemplo, esto puede ser...
-
Trabajar con cookies en JavaScript
Сookie (cookie web o cookie del navegador) es una cadena de información que puede almacenarse en un navegador y enviarse al servidor. El tamaño máximo para una cookie es...
-
Desplazamiento suave hacia el ancla mediante JavaScript
El desplazamiento suave es una característica popular del diseño web que mejora la experiencia del usuario al permitir una navegación fluida entre las secciones de una pá...
Leave a Reply