js中对象的遍历 总结

let obj={name:'张三',age:18,like:'motorcycle'}
1、for in 循环
for(let key in obj){
	console.log(key) //name age like
}

for in循环遍历对象自身的和继承的可枚举属性,所以我们使用for in循环时要使用hasOwnProperty方法对属性进行判断,只遍历对象自身属性。所以推荐第二种for in循环。

for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key) //name age like
    }
}
2、es6中的方法
//Object.keys() 返回一个数组,包括对象自身的所有可枚举属性的键名
for (let key of Object.keys(obj)) {
  	console.log(key); // name age like
}

//Object.values() 返回一个数组,包括对象自身的所有可枚举属性的键值。
for (let key of Object.values(obj)) {
    console.log(key); // 张三 18 motorcycle
}

//Object.entries() 返回一个数组,包括对象自身的所有可枚举属性的键值对数组。
for (let [key, value] of Object.entries(obj)) {
    console.log([key, value]); // ["name", "张三"]   ["age", 18]  ["like", "motorcycle"]
}

3、使用Object.getOwnPropertyNames(obj)遍历

返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)

Object.getOwnPropertyNames(obj).forEach(function(key){
    console.log(key,obj[key]); //name 张三   age 18  like motorcycle
});
Object.keys()的优化使用
Object.keys(obj).forEach(function(key){
     console.log(key,obj[key]); //name 张三   age 18  like motorcycle
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值