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