遍历对象的几种方式
for in
for in应该是最常见的遍历对象的方式
var obj = {
name: 'Tracy',
age: 26,
height: 178
}
for (let k in obj) {
console.log(k);
}
// print:
// name
// age
// height
其实还有几种遍历对象的方式:
- Object.keys():遍历对象的键
- Object.values():遍历对象的值
- Object.entries(): 遍历对象返回键值对数组
Object.keys() + Object.values():
var obj = {
name: 'Tracy',
age: 26,
height: '178cm'
}
// 遍历对象的键
var key = Object.keys(obj);
console.log(key); // [ 'name', 'age', 'height' ]
// 遍历对象的值
var val = Object.values(obj);
console.log(val); // [ 'Tracy', 26, '176cm' ]
console.log(val[2]); // 176cm
for(let key in obj) {
console.log(obj[key]);
}
// Tracy
// 26
// 178cm
Object.entries()
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。
var hero = {
emperor: '曹操',
general: '周瑜',
worrory: '马超'
}
console.log(Object.entries(hero)); // [ [ 'emperor', '曹操' ], [ 'general', '周瑜' ], [ 'worrory', '马超' ] ]
for(let [key, val] of Object.entries(hero)) {
console.log(key + '-' + val);
}
// emperor-曹操
// general-周瑜
// worrory-马超