Методы Array.prototype.forEach()
и Array.prototype.map()
используются для обхода массива и выполнения операции над каждым элементом массива, но они имеют различия в своем поведении и возвращаемых значениях.
Метод forEach()
выполняет указанную функцию обратного вызова для каждого элемента массива, но не возвращает новый массив. Функция обратного вызова может изменять исходный массив, но возвращаемое значение не используется. Метод forEach()
может быть полезен, когда нужно выполнить какое-либо действие для каждого элемента массива, например, вывести элементы на экран или изменить DOM-элементы.
Например:
const numbers = [1, 2, 3, 4, 5]
numbers.forEach(function (number, index) {
console.log(`Element #${index}: ${number}`)
})
Метод map()
также выполняет указанную функцию обратного вызова для каждого элемента массива, но возвращает новый массив, содержащий результаты выполнения функции обратного вызова для каждого элемента. Функция обратного вызова не может изменять исходный массив. Метод map()
может быть полезен, когда нужно изменить каждый элемент массива и получить новый массив с измененными значениями.
Например:
const numbers = [1, 2, 3, 4, 5]
const doubledNumbers = numbers.map(function (number) {
return number * 2
})
console.log(doubledNumbers) // [2, 4, 6, 8, 10]
Таким образом, основное различие между методами forEach()
и map()
заключается в том, что forEach()
не возвращает новый массив, а map()
возвращает новый массив с результатами выполнения функции обратного вызова для каждого элемента.