Ответ
Методы массива (map, filter, reduce и др.) и циклы (for, while) выполняют итерацию, но различаются подходом:
- Читаемость
Методы массива лаконичны и выражают намерение явно:
const doubled = arr.map(x => x * 2); // Четко видно преобразование
- Иммутабельность
Методы создают новые массивы, не изменяя исходный (кромеsort), тогда как циклы часто мутируют данные:
for (let i = 0; i < arr.length; i++) {
arr[i] = arr[i] * 2; // Мутация исходного массива
}
- Цепочки вызовов
Методы можно объединять:
arr.filter(x => x > 0).map(x => x * 2);
- Производительность
Циклы обычно быстрее, особенно для больших массивов, но разница часто не критична.
Когда что использовать:
- Методы — для большинства случаев (чистый код).
- Циклы — когда нужен максимальный контроль или производительность.