Каква е разликата между методите foreach и map в JavaScript?
sobes.tech AI
Отговор от AI
forEach преминава през елементите на масив и изпълнява функция за обратно извикване за всеки елемент, но не създава нов масив. Той се използва за странични ефекти, като извеждане в конзолата или промяна на външни променливи.
map също преминава през елементите на масива и изпълнява функция за обратно извикване за всеки елемент. Въпреки това, той връща нов масив, съдържащ резултатите от изпълнението на тази функция за всеки елемент. Той се използва за преобразуване на един масив в друг.
Пример с forEach:
const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Изход:
// 2
// 4
// 6
// масивът numbers остава [1, 2, 3]
Пример с map:
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Изход: [2, 4, 6]
// масивът numbers остава [1, 2, 3]
Ключовата разлика е, че map е "функционален" метод, който не променя оригиналния масив и връща нов, докато forEach е предназначен предимно за изпълнение на действия върху всеки елемент без връщане на нов масив.
| Критерий | forEach |
map |
|---|---|---|
| Връщана стойност | undefined |
Нов масив |
| Промяна на масива | Не създава нов масив | Създава нов масив |
| Основна цел | Изпълнение на действия върху всеки елемент | Преобразуване на масив в друг |
| Верижно използване | Не се поддържа по подразбиране | Поддържа се (връща масив) |