for forEach for in for of总结

近来总结了一下四类循环

for循环**

//数组遍历

var arr = [1,2,3,4,4]

//普通for循环

for(var i = 0; i < arr.length; i++){

​	console.log(arr[i]);

}

//结果1,2,3,4,4

 var obj = {x0: 100,

​      x1: 200,

​      x2: 300

​    }for(let i = 0; i < 3; i++){

​      console.log(obj["x"+i]);}

//结果100,200,300

//for循环不适合用在对象上,限制太大

**for in 循环**

for in在Array和Object中都可以使用。

注意:会遍历在对象中包含原型上的属性。

//数组遍历

var arr = [1,2,3,4,4];

  Array.prototype.x = "inherited";

  for(var i in arr){

​    console.log(arr[i]);   //1,2,3,4,4,inherited

​    // if(arr.hasOwnProperty(i)){

​    //   console.log(arr[i]);

​    // }     //1,2,3,4,4

  }

//对象遍历

 var obj = {x: 1,

​    y: 2,

​    z: 3

  }

  obj.__proto__.a = 400;

  for(var i in obj){

​    //console.log(obj[i]); //1,2,3,400

​    if(obj.hasOwnProperty(i)){

​      console.log(obj[i]);}

​    //1,2,3

  }

for of循环

for of在Array、Object、Set、Map中都可以使用。

//数组遍历

  // var arr = [1,2,3,4,4];

  // for(let value of arr){

  //   console.log(value);//1,2,3,4,4

  // }

  // for(let i of arr.keys()){

  //   console.log(i); //0,1,2,3,4

  // }

​    // for(let value of arry.values()){

​    //   console.log(value);

​    // } //报错



  // for(let [index,value] of arr.entries()){

  //   console.log(index,value);

  //     // 0 1

  //     // 1 2

  //     // 2 3

  //     // 3 4

  //     // 4 4

  // }

  //对象遍历

  // var obj = {

  //   x: 1,

  //   y: 2,

  //   z: 3

  // }

  // obj.__proto__.a = 100;

  

  // for(let [key,value] of Object.entries(obj)){

  //   console.log(key,value);

  //   // x 1

  //   // y 2

  //   // z 3

  //   //并没有遍历出原型链上的a

  // }

  //Set 的循环

  //Set 结构没有键名,只有键值(或者说键名和键值是同一个值)

  // var arr = [1,2,3,4,4];

  // let list = new Set(arr);

  // for(let key of list.keys()){

  //   console.log(key); //1 2 3 4

  // } 

  // for(let value of list.values()){

  //   console.log(value) //1 2 3 4

  // } 

  // for(let [key,value] of list.entries()){

  //   console.log(key,value); //1 1 2 2 3 3 4 4 

  // }



  // //map的 循环

  // let map = new Map();

  // map.set("a",123).set("b",234);

  // // console.log(map);

  // for(let key of map.keys()){

  //   console.log(key); //a b

  // }

  // for(let value of map.values()){

  //   console.log(value); //123 234

  // }

  // for (let [key,value] of map.entries()){

  //   console.log(key,value);//a 123 b 234

  // }



  // forEach循环在Array、Set、Map中都可以使用。

​    var arr = [11,22,33,44];

​    // arr.forEach((item,index) => {

​    //   console.log(item,index); //11 0 22 1 33 2 44 3

​    // })

​    // let list = new Set(arr);

​    // list.forEach((item,index) => {

​    //   console.log(item,index);//11 11 22 22 33 33 44 44 

​    // })

​    // let map = new Map();

​    // map.set("a",123).set("b",234);

​    // map.forEach((item,index) => {

​    //   console.log(item,index); //123 "a" 234 "b"

​    // })

如果出现了错误,欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值