Я понял, что когда я пытаюсь изменить значения логического массива с помощью функций forEach или map, значения не меняются. Мне нужно построить цикл for и изменить элементы по индексу. Я хочу знать, почему это так?



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