Вопрос проверяет понимание различий между императивными циклами и декларативными методами массивов в JavaScript, а также умение выбирать подходящий подход для читаемости и производительности кода.
В JavaScript существует два основных подхода к перебору массивов: императивный (циклы for, while) и декларативный (методы массивов). Императивный стиль описывает как выполнить операцию, шаг за шагом управляя индексом и состоянием. Декларативный стиль фокусируется на что нужно сделать, абстрагируя детали итерации.
Императивный цикл for для удвоения чисел:
const numbers = [1, 2, 3];
const doubled = [];
for (let i = 0; i < numbers.length; i++) {
doubled.push(numbers[i] * 2);
}
console.log(doubled); // [2, 4, 6]Тот же результат с методом map:
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6]Методы массивов, такие как map, filter, reduce, forEach, предоставляют чистый функциональный интерфейс. Они не изменяют исходный массив (кроме forEach) и возвращают новый, что упрощает отладку и тестирование. Однако они не поддерживают break или continue, поэтому для досрочного выхода из цикла или пропуска итераций по сложному условию приходится использовать императивные циклы.
Вывод: в современном JavaScript предпочтение отдается методам массивов за их читаемость и предсказуемость. Императивные циклы остаются инструментом для специфических сценариев, где требуется тонкий контроль над итерацией.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию