簡體   English   中英

JavaScript中的foreach循環語法

[英]foreach loop syntax in javascript

將myArray視為對象數組。

這兩段代碼是否相等?

myArray.forEach((item) => {
  return doAnAction(item);
});


myArray.forEach((item) => {
      doAnAction(item);
    });

在語法方面有沒有更好的選擇? 如果是,為什么?

更好的問題是,為什么不直接將函數用作回調,例如

myArray.forEach(doAnAction);

回調必須遵循Array#forEach的API,即

為每個元素執行的函數,采用三個參數:

  • currentValue :數組中正在處理的當前元素。
  • index :數組中正在處理的當前元素的索引。
  • array :要應用forEach()的數組。

如果只需要元素,則可以直接使用給定的回調而無需任何映射。

據我了解,這兩者之間沒有區別,因為您提供了一個要應用於Array中每個元素的匿名函數,而第一個確實返回doAnAction(item)的結果doAnAction(item)無論如何都會被忽略),而第二個則不返回。

因此,它們實際上是等效的,對於我而言,第二個對我來說更有意義。

這不是特定於forEach循環的。 這只是ES6語法。

對於ES5,這是正確的語法:

myArray.forEach(function (item) {
  doAnAction(item);
});

使用ES6,您將擁有更多的可能性:

// Solution #1
myArray.forEach((item) => {
  doAnAction(item);
});

// Solution #2
myArray.forEach(item => {
  doAnAction(item);
});

// Solution #3
myArray.forEach(item => doAnAction(item));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM