I know that there were a lot of topics like this. And I know the basics: .forEach()
operates on original array and .map()
on the new one.
In my case:
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);
And this is 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 ]
I can't understand why using practice
changes value of b
to undefined
.
I'm sorry if this is silly question, but I'm quite new in this language and answers I found so far didn't satisfy me.
.map
returns a new array, whereas.forEach
doesn’t return anything. Basically, if you want to obtain a modified form of the previous array, you use.map
, if you don’t want that, you use.forEach
. – My