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 31 2。可见,forEach中使用return false没有任何效果。那么,有什么解决办法呢?

可以使用some或者every方法来替代forEachsomereturn true时跳出循环,everyreturn false时跳出循环。

arr.some((value, index) => {
    console.log(value);
    if (index === 1) {
        return true;
    }
})

//输出 1, 2

如果你使用es6的话,还可以使用for...of来循环,在这里可以使用return或者break随时终止掉循环。

所以,在平常使用forEach的时候,应该注意到这个问题。

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注