Sé que hubo muchos temas como este. Y conozco lo básico: .forEach()
funciona en la matriz original y .map()
en la nueva.
En mi caso:
function practice (i){
return i+1;
};
var a = [ -1, 0, 1, 2, 3, 4, 5 ];
var b = [ 0 ];
var c = [ 0 ];
console.log(a);
b = a.forEach(practice);
console.log("=====");
console.log(a);
console.log(b);
c = a.map(practice);
console.log("=====");
console.log(a);
console.log(c);
Y esta es la salida:
[ -1, 0, 1, 2, 3, 4, 5 ]
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
undefined
=====
[ -1, 0, 1, 2, 3, 4, 5 ]
[ 0, 1, 2, 3, 4, 5, 6 ]
No puedo entender por qué el uso practice
cambia el valor de b
a undefined
.
Lo siento si esta es una pregunta tonta, pero soy bastante nuevo en este idioma y las respuestas que encontré hasta ahora no me satisfacen.
.map
devuelve una nueva matriz , mientras.forEach
que no devuelve nada . Básicamente, si desea obtener una forma modificada de la matriz anterior, use.map
, si no lo desea, use.forEach
.