Wiem, że takich tematów było wiele. I znam podstawy: .forEach()
działa na oryginalnej tablicy i .map()
na nowej.
W moim przypadku:
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);
A to jest wyjście:
[ -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 ]
Nie mogę zrozumieć, dlaczego użycie practice
zmienia wartość b
do undefined
.
Przykro mi, jeśli to głupie pytanie, ale jestem całkiem nowy w tym języku, a odpowiedzi, które znalazłem do tej pory, nie zadowalały mnie.
.map
zwraca nową tablicę , ale.forEach
nic nie zwraca . Zasadniczo, jeśli chcesz uzyskać zmodyfikowaną postać poprzedniej tablicy, użyj.map
, jeśli nie chcesz tego, użyj.forEach
.