博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
for-in和for-of,forEach和Map
阅读量:6832 次
发布时间:2019-06-26

本文共 1535 字,大约阅读时间需要 5 分钟。

for-in和for-of

  1.  for-in循环实际是为循环”enumerable“对象而设计的,是用来循环带有字符串key的对象的。

    使用for in会遍历数组所有的可枚举属性,包括原型。所以for in更适合遍历对象,不要使用for in遍历数组。

  var obj = {a:1, b:2, c:3};  for (var prop in obj) {      console.log("obj." + prop + " = " + obj[prop]);  }

 

  2.  for-of可用于循环数组value值,或者可迭代对象,如Map, Set, String。

    如果循环普通的对象,需要通过和Object.keys()搭配使用。

  var student={      name:'wujunchuan',      age:22,      locate:{        country:'china',        city:'xiamen',        school:'XMUT'      }  }  for(var key of Object.keys(student)){      //使用Object.keys()方法获取对象key的数组      console.log(key+": "+student[key]);  }

  3. 总结: 

  1. 推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of。

  2. for...in循环出的是key,for...of循环出的是value
  3. 注意,for...of是ES6新引入的特性。修复了ES5引入的for...in的不足
  4. for...of不能循环普通的对象,需要通过和Object.keys()搭配使用

forEach和Map

  共同点:

    1. 都是循环遍历数组中的每一项。
    2. forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value,当前项的索引index,原始数组array。
    3. 匿名函数中的this都是指Window。
    4. 只能遍历数组。

  1. forEach

    没有返回值,不能中断循环(使用break语句或使用return语句),只是针对每个元素调用func。

  var ary = [12,23,24,42,1];  var res = ary.forEach(function (value,index,array) {      console.log(value*10);  })  console.log(res);//-->undefined;  console.log(ary);//-->[12,23,24,42,1]  原来的数组不变;

  2. Map
    返回一个新的Array,新数组元素为原来的数组的每个元素调用func的结果,对原来数组不影响。

var ary = [12,23,24,42,1];    var res = ary.map(function (value,index,array) {        return value*10;    })    console.log(res);//-->[120,230,240,420,10];    console.log(ary);//-->[12,23,24,42,1];

 

转载于:https://www.cnblogs.com/lishuxue/p/7449714.html

你可能感兴趣的文章
标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
查看>>
[WPF]有滑动效果的进度条
查看>>
妙趣横生的算法--顺序表
查看>>
Xcode 5.0.2 下载地址
查看>>
Z.Studio高级成衣定制(双井店)价格,地址(图)-北京-大众点评网
查看>>
定时器
查看>>
【LeetCode】120. Triangle (3 solutions)
查看>>
boost::interprocess(1)
查看>>
Noi2011 : 智能车比赛
查看>>
设置tomcat 编译文件位置【转】
查看>>
NOI2010 : 超级钢琴
查看>>
sine曲线向前运动
查看>>
ios的@property属性和@synthesize属性(转)
查看>>
四种常见的 POST 提交数据方式
查看>>
编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url
查看>>
ubuntu 14.04 chromium,firefox 怎样正确安装Adobe flash player
查看>>
Linux makefile 教程 很具体,且易懂
查看>>
linux用dd测试磁盘速度
查看>>
八大排序算法总结
查看>>
Fibre Channel和Fiber Channel
查看>>