WbICHA, я бы еще добавил, что создание функции нужно выносить за цикл, а не плодить миллион однотипных
map() возвращает совершенно новый массив с преобразованными элементами и тем же количеством данных. В случае forEach(), даже если он вернется undefined, он изменит исходный массив с помощью callback.
Поэтому что map() опирается на неизменность и forEach() является мутатором.
Вероятнее всего имелось ввиду, что если вы захотите как-то повлиять намассив, то вы обязательно измените исходный. А если не хотите его менять, то надо сначала объявить новый результирующий массив, чтобы его передать как параметр, и в него уже пушить новые элементы.
В данном случае нет разницы что использовать.
[...response].filter
resp.value.toString().toLowerCase() question.done.toString().toLowerCase();
return endResponse.textContent = `${name.value} ответил на ${doneArray.length} вопроса из ${questions.length}`;
В конце-концов, они сейчас нахрен никому не нужны, вообще.
eRKa, спасибо за просвещение, только в примерах выше нет объектов. Конечно, если вы не имеете ввиду массив, что, конечно, тоже верно, но всё же под объектом подразумевается именно объект.
Это дело привычки. Если ты привыкаешь использовать мап тогда, когда это уместно, то хоть в массиве будет 2, хоть 2 000 000 элементов, ты будешь применять те методы, которые актуальны.
Или вы действительно думаете, что человек, который не обращает на подобное в малом коде, будет действительно обращать на это в большом? Разве что при рефакторинге, но это дополнительное время и силы.