return true
相当于continue
,从当前迭代函数中返回,继续调用下一个元素执行迭代。因此下面这段代码对 arr 数组中的每一个元素都执行了箭头函数。
arr = [-3, -1, 2, 3, 4, 5, 6, -7, -8, 9];
outArr = [];
_.forEach(arr, (obj, index) => {
if (obj < 3) {
outArr.push(obj*2);
} else {
return true;
}
});
// outArr 值为 [-6, -2, 4, -14, -16]
return false
相当于break
,从当前迭代函数中返回并且终止迭代。所以下面这段代码只对 arr 的前3个元素执行了箭头函数。
arr = [-3, -1, 2, 3, 4, 5, 6, -7, -8, 9];
outArr = [];
_.forEach(arr, (obj, index) => {
if (obj < 3) {
outArr.push(obj*2);
} else {
return false;
}
});
// outArr 值为 [-6, -2, 4]
注意,return;
和return true;
的效果一样。
另外,箭头函数的参数顺序有讲究。第1个参数是元素,第2个才是索引值(与PHP里的顺序刚好相反)。不要把(obj, index) => {..}
错写成(index, obj) => {..}
最后,_.each()
等同于_.forEach()
网友评论