js中对象的遍历

在项目中对对象的遍历在所难免,现总结以下几种遍历对象的方法。
假设我们有一个对象,var obj={name:'liming',age:29},需要对它进行遍历操作。


  • for in 循环
for(var key in obj){
    console.log(obj[key]); // liming 29
}

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(obj[key]);  // liming 29
    }
}
  • for of 循环
    对于普通的对象,for of循环不能直接使用,会报错,必须部署了 Iterator 接口后才能使用。

  • es6的Object.keys()

for (var key of Object.keys(obj)) {
    console.log(key); // name age
}
  • es6的Object.values()
for (var key of Object.values(obj)) {
    console.log(key); // liming 29
}
  • es6的Object.entries()
for (var [key, value] of Object.entries(obj)) {
    console.log([key, value]); // [['name','liming'],['age','29']]
}

说明:

  • for in循环遍历对象自身的和继承的可枚举属性,所以我们使用for in循环时要使用hasOwnProperty方法对属性进行判断,只遍历对象自身属性。所以推荐第二种for in循环。
  • Object.keys()返回一个数组,包括对象自身的所有可枚举属性的键名。
  • Object.values()返回一个数组,包括对象自身的所有可枚举属性的键值。
  • Object.entries()返回一个数组,包括对象自身的所有可枚举属性的键值对数组。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容