[英]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.