JavaScript: разница между .forEach () и .map ()

Я знаю, что было много таких тем. И я знаю основы:.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.
Извините, если это глупый вопрос, но я совсем новичок в этом языке, и ответы, которые я нашел до сих пор, меня не удовлетворяли.

Ответы на вопрос(6)

Ваш ответ на вопрос