Я думаю, у вас есть ошибочное понимание того, как forEach()
и map()
работают.
forEach()
вызывает метод обратного вызова для каждого элемента в массиве, но сам по себе не меняет массив. Чтобы реально изменить массив с помощью forEach()
, вам нужно будет использовать индекс в функции обратного вызова:
const array = [true, true];
array.forEach((v, i, a) => a[i] = !v);
console.log(array); // [false, false]
Подобно forEach()
, map()
не меняет массив, в котором он вызывается. Он применяет функцию обратного вызова к каждому элементу в массиве и возвращает массив new , содержащий преобразованные элементы. Это означает, что вы должны присвоить результат операции map()
обратно переменной:
const array = [true, true];
const result = array.map(v => !v);
console.log(result); // [false, false]