Для фрагмента кода с массивом [1, 2, 3], вызовами map(item => item * 2) и filter(item => item > 3) определите, что выведет console.log. Мутируют ли map и filter исходный массив?

При цепочке [1, 2, 3].map(x => x * 2).filter(x => x > 3) получится [4, 6]; исходный массив не меняется.

Короткий ответ

Что ответить на собеседовании

При цепочке [1, 2, 3].map(x => x * 2).filter(x => x > 3) получится [4, 6]; исходный массив не меняется.

Подробный разбор

Ответ с пояснениями

При цепочке [1, 2, 3].map(x => x * 2).filter(x => x > 3) получится [4, 6]; исходный массив не меняется.

Если map и filter вызываются независимо от исходного массива, результаты будут [2, 4, 6] и [] соответственно. Оба метода создают новые массивы, но callback может сам мутировать объекты внутри массива — это уже отдельный побочный эффект.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее