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()返回一个数组,包括对象自身的所有可枚举属性的键值对数组。
    原文作者:tiancai啊呆
    原文地址: https://www.jianshu.com/p/d68ab0a6df40
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞