So che c'erano molti argomenti come questo. E conosco le basi: .forEach()
opera sull'array originale e .map()
su quello nuovo.
Nel mio 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);
E questo è l'output:
[ -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 ]
Non riesco a capire perché l'utilizzo di practice
modifiche al valore di b
a undefined
.
Mi dispiace se questa è una domanda stupida, ma sono abbastanza nuovo in questa lingua e le risposte che ho trovato finora non mi hanno soddisfatto.
.map
restituisce un nuovo array , mentre.forEach
non restituisce nulla . Fondamentalmente, se vuoi ottenere una forma modificata dell'array precedente, usi.map
, se non lo vuoi, usi.forEach
.