const numbers = [1, 2, 3, 4]; const filteredNumbers = numbers.map((num, index) => { if (index < 3) { return num; } }); // filteredNumbers is [1, 2, 3, undefined]Según tengo entendido, la función de devolución de llamada debería devolver todos los números de la matriz si su índice es inferior a 3, por lo que debería devolver 1,2,3 y detenerse después de eso y el número 4 no se puede devolver como si la condición dijera que el índice debe ser inferior a 3. Me pregunto por qué volvió indefinido para el número de índice 3.
.map es un isomorfismo y conserva la longitud de la matriz dada.
Entonces, si la función de devolución de llamada no devuelve nada, el índice no estará definido.
En su lugar, desea usar una función de filter si necesita filtrar elementos de matriz que cumplan con una determinada condición.
const numbers = [1, 2, 3, 4]; const filteredNumbers = numbers.filter((_, index) => index < 3); console.log(filteredNumbers);Si solo desea obtener los primeros 3 elementos de la matriz, le recomiendo usar slice.
const numbers = [1, 2, 3, 4]; console.log(numbers.slice(0, 3));La segunda solución es usar filtro en lugar de mapa.
const numbers = [1, 2, 3, 4]; const filteredNumbers = numbers.filter((num, index) => { return index < 3 }); console.log(filteredNumbers)