jQuery的each和Array.prototype.forEach区别
这俩都是用来循环遍历的,不同的是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
的时候,应该注意到这个问题。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=1077