对象的遍历方式汇总
in方式
遍历了对象中的键
可以访问到原型链上的属性和方法的键
例子如下:
object= {
name: '张晓军',
sex: '男',
eat(){
console.log(name+'开始吃饭')
}
}
for(var i in object){
console.log(i)
}
console.log(Object.keys(object))
Object.keys(object)
也是访问object 里的键,返回的是一个存储了所有键的数组,他不会访问原型链上的数组。然后可以使用数组的遍历方式来访问所有的键
object= {
name: '张晓军',
sex: '男',
eat(){
console.log(name+'开始吃饭')
}
}
Object.keys(object).forEach(function(val,index,arr){
console.log(val,index,arr)
})
Object.values(object)
他和Object.keys 差不多,差别是它返回的是值组成的数组
object= {
name: '张晓军',
sex: '男',
eat(){
console.log(name+'开始吃饭')
}
}
Object.values(object).forEach(function(val,index,arr){
console.log(val,index,arr)
})
Reflext.ownkeys() // Object.entries(object)
返回值是返回对象的键值对
也不会访问到原型链上面去
object= {
name: '张晓军',
sex: '男',
eat(){
console.log(name+'开始吃饭')
}
}
Object.entries(object).forEach(function(val,index,arr){
console.log(val,index,arr)
})
Object.getOwnPropertyNames(object)
和keys 一样 也是返回一个键的数组,不一样的地方是会返回一个不可枚举数
例子
object= {
name: '张晓军',
sex: '男',
eat(){
console.log(name+'开始吃饭')
}
}
Object.getOwnPropertyNames(object).forEach(function(val,index,arr){
console.log(val,index,arr)
})