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 practicezmienia wartość bdo 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.
.mapzwraca nową tablicę , ale.forEachnic nie zwraca . Zasadniczo, jeśli chcesz uzyskać zmodyfikowaną postać poprzedniej tablicy, użyj.map, jeśli nie chcesz tego, użyj.forEach.