Я знаю, що таких тем було дуже багато. І я знаю основи: .forEach()
працює на оригінальному масиві та .map()
на новому.
У моєму випадку:
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);
І це вихід:
[ -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 ]
Я не можу зрозуміти, чому використовується practice
значення змін b
у undefined
.
Вибачте, якщо це нерозумне запитання, але я абсолютно нова мова цією мовою, і відповіді, які я знайшов поки що, не задовольнили мене.
.map
повертає новий масив , тоді як.forEach
нічого не повертає . В основному, якщо ви хочете отримати змінену форму попереднього масиву, ви використовуєте.map
, якщо цього не хочете, ви використовуєте.forEach
.