Estoy escribiendo una función muy fácil en la que verifico los números pares de una matriz de enteros y agrego esos números pares a la nueva matriz. Pero después de obtener los números pares de la primera matriz cuando trato de ingresar a la segunda matriz, se muestra indefinido.
const arr = [1,2,3,4,5,6]; const newArr = []; const loop = () => { for (var item of array) { if (item % 2 == 0) { console.log(item); newArr.push(item); } } }; console.log(loop());Producción
2 4 6 indefinido
Por qué la nueva matriz se muestra indefinida.
Puedes hacerlo simplemente con forEach.
const arr = [1,2,3,4,5,6]; const newArr = []; arr.forEach(item => { if (item % 2 == 0) { newArr.push(item); } }) console.log(newArr);devuelva el nuevo Array o ejecute el método de bucle e imprima el nuevo Array.
La razón por la que no está definido es porque loop es actualmente un operador nulo y no devuelve nada. entonces, si desea que el método de bucle devuelva la matriz, la segunda muestra de código que mostré es la mejor solución. si solo desea imprimir la matriz, entonces la primera hace el truco.
const arr = [1,2,3,4,5,6]; const newArr = []; arr.forEach(item => { if (item % 2 == 0) { newArr.push(item); } }) console.log(newArr);o
const arr = [1,2,3,4,5,6]; const loop = () => { const newArr = []; for (var item of arr) { if (item % 2 == 0) { console.log(item); newArr.push(item); } } return newArr }; console.log(loop());ambos funcionarán.