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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.