中断数组循环

作者: laohan | 来源:发表于2016-08-22 22:17 被阅读57次

有时候,需要遍历一个数组,对数组中的元素进行一些操作,但当某个元素满足一定条件时,就退出循环。

通常,会使用下面的写法:

var arr = [1, 2, 3, 4, 5];
for(var i = 0, len = arr.length; i < len; i++) {
    if(i === 3) {
        break;
    }
    console.log(i); // 0, 1, 2
}

其实,也可以利用数组自带的方法。可能你会立马想到forEach这个方法,但是有一些人并不知道,这个方法并不支持break操作。

var arr = [1, 2, 3, 4, 5];
arr.forEach((el, idx) => {
    if(idx === 3) {
        break;
    }
    console.log(idx);
})
// 上面的代码会发生错误
// Uncaught SyntaxError: Illegal break statement

那么,forEach不行,还有什么方法呢?

有的,some、every就可以了。

some这个方法,会对数组进行遍历操作,当遍历到某一元素返回true时,就会停止遍历,并返回true,否则就遍历所有元素,返回false。

var arr = [1, 2, 3, 4, 5];
arr.some((el, idx) => {
    if(idx === 3) {
        return true;
    }
    console.log(idx); // 0, 1, 2
})

every这个方法跟some有点类似,也会对数组进行遍历操作,但是当遍历到某一元素返回false时,就停止遍历,并返回false,否则就遍历所有元素。仅当所有元素的操作都返回true时,此方法返回的结果才为true,否则为false。

var arr = [1, 2, 3, 4, 5];
arr.every((el, idx) => {
    if(idx === 3) {
        return false;
    }
    console.log(idx); // 0, 1, 2
    return true;
})

相关文章

  • 中断数组循环

    有时候,需要遍历一个数组,对数组中的元素进行一些操作,但当某个元素满足一定条件时,就退出循环。 通常,会使用下面的...

  • 一张图看清JS中的那些迭代方法

    补充: 1、forEach循环的缺点: 不能中断循环(不能使用break或return) 如果要引用数组或集合的索...

  • ES6遍历数组

    ES5遍历数组 forEach 缺点 不能使用break语句中断循环,也不能用return语句返回外层函数 for...

  • vue循环与显示

    vue循环 v-for循环普通数组 数组索引值 循环对象数组 循环对象,值(1,ts,man)键(id,name,...

  • 中断forEach循环

  • for-in for-of 循环 迭代器 详解

    实现数组遍历 ES4及以前 缺点:不简洁 ES5 缺点:不能使用break语句中断循环,也不能使用return语句...

  • forEach

    forEach()方法对数组的每个元素执行一次提供的函数 注意:只是遍历,没有返回值注意:不能中断循环(不能使用b...

  • 005-数组,冒泡排序,二分查找法

    什么是数组? 为什么要用数组? 数组如何定义 数组遍历 for循环遍历 增强for循环 数组的默认值 数组的特点 ...

  • JS进阶篇

    数组 一维数组 二维数组 循环 break:退出整个循环;continue:退出此次循环,继续下一个数据的循环 事...

  • 数组循环方法

    for循环 使用break,可以中断循环 使用continue,循环可以继续 使用return,会报错 for.....

网友评论

    本文标题:中断数组循环

    本文链接:https://www.haomeiwen.com/subject/seugsttx.html