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