JS循环
数组 list:[
{name:1},
{name:2},
{name:3}
],
Es5 forEach循环
参数1 当前遍历的数据 ,参数2 是当前数据的下标 ,参数3当前数组
不支持continue break
this.list.forEach((e)=>{
console.log(e.name)
e.name += 2
})
console.log(this.list)//[{name: 3} {name: 4},{name: 5}]
Es6 map循环
参数1 当前遍历的数据 ,参数2 是当前数据的下标 ,参数3当前数组
不支持continue break
this.list.map((e)=>{
console.log(e.name)
e.name += 2
})
console.log(this.list)//[{name: 3} {name: 4},{name: 5}]
let list2=this.list.map((e)=>{
//如果想原来数组不变这里先赋值给其他变量在return
//forEach没有这个写法
return e.name += 2
})
console.log(this.list)//[{name: 3} {name: 4},{name: 5}]
console.log(list2)//[3,4,5]
Es6 for of循环
.entries()查询下标
let [下标,当前数据]
如果不需要用下标 直接 for (let 当前数据 of 遍历的对象)
for (let [k,i] of this.list.entries()) {
//i.name +=2 //可以改变this.list自身
if(i.name==2){
// return //方法结束 //0,1
continue //跳过本次循环 //0,1 2,3 4
// break //结束循环 //0,1 4
}
console.log(k,i.name)
}
console.log(4)
经典for循环
for(let i=0;i<this.list.length;i++){
if(this.list[i].name==2){
// return //方法结束 //1
// continue //跳过本次循环 //1 3 4
// break //结束循环 //1 4
}
console.log(this.list[i].name)
}
console.log("4")
for in循环
for (let i in this.list) {
if(this.list[i].name==2){
// return //方法结束 //1
continue //跳过本次循环 //1 3 4
// break //结束循环 //1 4
}
console.log(this.list[i].name)
}
console.log("4")
while循环
let i=0
while(i< this.list.length ){
if(this.list[i].name==2){
// return //方法结束 //1
i++; continue //跳过本次循环 //1 3 4
// break //结束循环 //1 4
}
console.log(this.list[i].name)
i++;
}
console.log(4)