JavaScript 中 forEach() 和 map() 方法的区别是什么?
JavaScript 提供了几种遍历数组和对象的方法。最常见的方法是 for 循环,用于迭代数组或对象的元素。但是,还有其他方法可以遍历数组和对象,例如 forEach() 和 map() 方法。
forEach() 方法
**forEach()** 方法用于遍历数组或对象的每个元素。forEach() 方法接受一个回调函数作为参数。回调函数对数组或对象的每个元素都调用一次。
**forEach()** 方法类似于 for 循环,但它没有返回值。
示例
以下是带有解释的完整工作代码 -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> var arr = [1,2,3,4,5]; arr.forEach(function(element){ var item2 = document.createElement('div'); item2.innerText = element; document.getElementById("result").appendChild(item2); }); </script> </body> </html>
在上面的代码中,我们定义了一个名为“arr”的数组。forEach() 方法被调用在“arr”数组上。forEach() 方法接受一个回调函数作为参数。回调函数对“arr”数组的每个元素都调用一次。
map() 方法
**map()** 方法用于遍历数组或对象的每个元素。map() 方法接受一个回调函数作为参数。回调函数对数组或对象的每个元素都调用一次。
**map()** 方法类似于 **forEach()** 方法,但它返回一个新数组。
示例
以下是带有解释的完整工作代码 -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> var arr = [1,2,3,4,5]; arr.map(function(element){ var item2 = document.createElement('div'); item2.innerText = element; document.getElementById("result").appendChild(item2); }); </script> </body> </html>
在上面的代码中,我们定义了一个名为“arr”的数组。map() 方法被调用在“arr”数组上。map() 方法接受一个回调函数作为参数。回调函数对“arr”数组的每个元素都调用一次。回调函数的返回值存储在一个名为“newArr”的新数组中。
map() 与 forEach()
map() 和 forEach() 方法之间的一些区别列在下面 -
map() 方法返回一个新数组,而 forEach() 方法不返回新数组。
map() 方法用于转换数组的元素,而 forEach() 方法用于遍历数组的元素。
map() 方法可以与其他数组方法一起使用,例如 filter() 方法,而 forEach() 方法不能与其他数组方法一起使用。
结论
总之,forEach() 和 map() 方法都用于遍历数组和对象。forEach() 方法不返回新数组,而 map() 方法返回新数组。map() 方法用于转换数组的元素,而 forEach() 方法用于遍历数组的元素。