forEach 和 for 、for in 终止当次循环,退出循环

        var arr = [{
            name:'张三'
        },{
            name:'李四'
        },{
            name:'王五'
        }]
        var i=0;

1、for循环中的continue和break

for(;i

然而我们用for循环并不多。看forEach方法等

2、forEach

(1)、数组的forEach方式,是遍历数组的每一项,常用场景:需要遍历数组,进行数据处理
(2)、语法:
arr.forEach((item,index,arr)=>{

},thisValue)
箭头函数中的thisValue 是 window
arr是该数组
(3)、在forEach方法中如何退出循环
本身是不支持的 continue 与 break 语句的,在forEach 中使用continue 或者 break ,会报语法错误。

arr.forEach(item => {
    if(item.name === '李四'){
        return  // forEach 中的return 就是跳过当次,继续该for循环,相当于for中的continue
    }
    console.log(item.name) // 张三  王五
})

arr.some()

会遍历数组中每一项,如果满足指定条件,则表达式返回true,剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

arr.some(item => {
    console.log(item.name)
    return item.name === '李四'
})

另外,arr.some()可以实现for循环中的continue的效果

arr.some(item => {
    if(item.name === '李四'){
        return
    }
    console.log(item.name) // 张三 王五
})

arr.every()

会遍历数组中的每一项,如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回true。

var arr2 = [22,22,1,3]
var h = arr2.every(item => {
    console.log(item) // 22 22 1
    return item === 22
})
console.log( h) // false

arr.every()实现for的break效果

var arr3 = [1,2,3,4,5]
arr3.every(item => {
    console.log(item) // 1,2,3
    return item !== 3
})

for of

1、es6语法
2、适用于Array、String、不适用Object 适用于类数组arguments

for in 主要用于Object循环,不适于数组,循环在不同浏览器中顺序是随机的

for in中跳过当次用continue,终止循环用break。同for循环

var obj = {
    name: '张三',
    age: 12,
    sex: 1
}
for(var i in obj){
    if(obj[i]== 12){
        continue // 跳过 本地
    }
    console.log(obj[i])
}
for(var i in obj){
    if(obj[i]== 12){
        break // 终止
    }
    console.log(obj[i])
}

类数组:具有length属性的对象,key为0,1,2,3,key为别的转成数组后该项是undefined,类数组转数组是以key为[]的索引改写
key 必须是数值型或是字符串型的数字

类数组特点:
1、本身是对象,demo 参数arguments、一类DOM对象,jq对象
2、不是Array,不能使用数组方法
3、有length属性
4、类数组可以转化为数组 Array.from()

你可能感兴趣的:(forEach 和 for 、for in 终止当次循环,退出循环)