Eu sei que houve muitos tópicos como este. E eu sei o básico:.forEach()
opera na matriz original e .map()
na nova.
No meu 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 esta é a saída:
[ -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 ]
Não consigo entender por que usar practice
altera o valor de b
para undefined
.
Desculpe se esta é uma pergunta boba, mas sou muito novo nessa linguagem e as respostas que encontrei até agora não me satisfizeram.
.map
retorna um novo array ,.forEach
mas não retorna nada . Basicamente, se você deseja obter uma forma modificada do array anterior, você usa.map
, se não quiser, você usa.forEach
.