这俩都是用来循环遍历的,不同的是jquery的$.each
不仅仅可以循环数组,而forEach
只能用来循环数组。
然而,还不仅仅是这样,$.each
可以手动终止循环,而forEach
却不可以。
const arr = [1, 2, 3]
arr.forEach((value, index) => {
console.log(value);
if (index === 1) {
return false;
}
});
$.each(arr, function (index, value) {
console.log(value);
if (index === 1) return false;
});
它们分别输出1 2 3
和1 2
。可见,forEach
中使用return false
没有任何效果。那么,有什么解决办法呢?
可以使用some
或者every
方法来替代forEach
,some
在return true
时跳出循环,every
在return false
时跳出循环。
arr.some((value, index) => {
console.log(value);
if (index === 1) {
return true;
}
})
//输出 1, 2
如果你使用es6的话,还可以使用for...of
来循环,在这里可以使用return
或者break
随时终止掉循环。
所以,在平常使用forEach
的时候,应该注意到这个问题。
如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!
如无特殊声明,文章均为原创,若有不正之处,万望告知。转载请附上原文地址,十分感谢!