Bootstrap

【Js循环】

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