Iterar elementos de una matriz sin bucles
Last updated: 28.08.2025
Views: 120
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:
-
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...
-
Cómo eliminar el campo "Sitio web" del formulario de comentarios de WordPress
Por defecto, WordPress incluye un campo "Sitio web" o "URL" en su formulario de comentarios. Si bien esto puede ser útil en algunos casos, suele atraer spammers que dejan...
-
Cómo crear un plugin jQuery personalizado
La ventaja del plugin jQuery es que puedes usar el mismo código varias veces para diferentes objetos. En este caso, no es necesario copiar y pegar el código. Además, pued...
Leave a Reply