jQuery的each和Array.prototype.forEach区别

该文章由 leevare 发布于 ,归类于 Javascript

这俩都是用来循环遍历的,不同的是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的时候,应该注意到这个问题。

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒