ES6一共有5种方法可以遍历对象的属性。
let obj = {
name: '佳音呀~',
age: 18,
like: '唱歌'
}
1、for…in
for…in循环遍历对象自身的和继承的可枚举属性。
for (const key in obj) {
console.log('>>>>>key,', key);
console.log('>>>>>value,', obj[key]);
}
// >>>>>key, name
// >>>>>value, 佳音呀~
// >>>>>key, age
// >>>>>value, 18
// >>>>>key, like
// >>>>>value, 唱歌
2、Object.keys(obj)
Object.keys(obj)返回一个数组,包括对象自身的(不含继承的)所有可枚举属性
let keys = Object.keys(obj)
console.log(keys); // ["name", "age", "like"]
3、Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames(obj)返回一个数组,包含对象自身的所有属性,也包含不可枚举属性。
let arr = Object.getOwnPropertyNames(obj)
console.log(arr); // ["name", "age", "like"]
4、Object.getOwnPropertySymbols(Obj)
返回一个数组,包含对象自身的所有Symbol属性
let symbolKeys = Object.getOwnPropertySymbols(obj)
console.log(symbolKeys); // []
5、Reflect.ownKeys(obj)
返回一个数组,包含对象自身的所有属性,不管属性名是Symbol还是字符串,也不管是否可枚举。
let reflectKeys = Reflect.ownKeys(obj)
console.log(reflectKeys); // ["name", "age", "like"]