不仅数组有 keys、values、entries 这三个方法,对象也有这三个方法。
keys
返回对象的key,浅层的,数组形式
const foo = {
name:'jyk',
age: 12
}
console.log(Object.keys(foo)) //

keys
返回一个数组。于是我们可以得到对象的 key ,以及更多的遍历方式。
for of
const foo = {
name:'jyk',
age: 12
}
const { keys } = Object
for (const key of keys(foo)){
console.log(key) //
}

for of
forEach
const foo = {
name:'jyk',
age: 12
}
const { keys } = Object
keys(foo).forEach((item) => {
console.log(item)
})

forEach
Object.keys 返回的是数组,这个就非常方便了,可以用大家喜欢的方式来遍历获取数据,也可以通过 length 的方式获取对象有多少个 key。
不过需要注意的是,不支持 Symbol() ,会被过滤掉。

不支持 symbol
values
同上,返回的是对象的属性的值,也是浅层的。
const foo = {
name:'jyk',
age: 12
}
console.log(Object.values(foo)) //
const { values } = Object
for (const val of values(foo)){
console.log(val) //
}

values
如果参数是字符串,那么会返回字符的数组

字符串
entries
同上,这次是一起返回。二维数组的形式
const foo = {
name:'jyk',
age: 12
}
console.log(Object.entries(foo)) //
const { entries } = Object
for (const [key, val] of entries(foo)){
console.log(key, val) //
}

entries