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()