1.for in 循环是最基础的遍历对象的方式,它还会得到对象原型链上的属性
const obj = {
id:1,
name:'dadadada',
age:18
}
for(let key in obj){
console.log(key + '---' + obj[key])
}
Object.create // 使用对象的 hasOwnProperty() 方法过滤掉原型链上的属性
2.Object.keys() 是 ES5 新增的一个对象方法,返回对象自身属性名组成的数组,它会自动过滤掉原型链上的属性,可以通过数组的 forEach() 方法来遍历
Object.keys(obj).forEach((key) => {
console.log(obj[key]) // foo
})
// Object.keys 返回对象key,
let keys= Object.keys(obj)
console.log(keys) // ["name", "age", "sex"]
3.Object.values(obj)
// Object.values 返回对象value,所组成的数组
let values= Object.values(obj)
console.log(values) //["jack", 12, "M"]
4.Object.entries
// Object.entries 返回对象[key,value] 组成的二维数组
let entries= Object.entries(obj)
console.log(entries) // [["name", "jack"],["age", 12],["sex", "M"]]
(不包括不可枚举属性,Symbol属性)
5.Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames(obj).forEach(function(key){
console.log(key+ '---'+obj[key])
})
6.Object.getOwnPropertySymbols()
7.Reflect.ownKeys()
网友评论