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() 方法用于遍历数组的元素。

更新于: 2022年7月1日

41K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告