最近在学习vue源码,实现Observer劫持并监听所有属性的时候,用到了Object.keys()方法,记录一下
语法
Object.keys(obj)
- 参数:要返回其枚举自身属性的对象
- 返回值:一个表示给定对象的所有可枚举属性的字符串数组
处理对象,返回可枚举的属性数组
let person = {
name : "zhangs",
city : "xian",
fav : "sing"
}
Object.keys(person) // ["name","city","fav"]
处理数组,就会返回数组的索引值
let arr = [1,32,2,23,1]
Object.keys(arr) // ["0","1","2","3","4"]
处理字符串,返回索引值数组
let arr = "strings"
Object.keys(str) // ["0","1","2","3","4","5","6"]
应用场景
let person = {
name : "zhangs",
city : "xian",
fav : "sing"
}
Object.keys(person).map((key)=>{
person[key] //获取到对应的值,做一些操作
})
- Object.values() 可以把一个对象的值转换为数组,与Object.keys()对应