Skip to main content

新增对象键值方法

一、Object.keys()

「点击查看详细说明」

  • 参数:目标对象
  • 返回值:指定对象的键组成的数组

1、将对象的 key 值作为数组返回

ES5 的方法:

let grade = {
"Tim": 96,
"Bang": 99
}
let result = []

for (let k in grade) {
result.push(k)
}

console.log(result) // ["Tim", "Bang"]

ES8 的方法:

let grade = {
"Tim": 96,
"Bang": 99
}

console.log(Object.keys(grade)) // ["Tim", "Bang"]

2、过滤对象的 key 值并作为数组返回

ES5 的方法:

let grade = {
"Tim": 96,
"Bang": 99
}
let result = []

for (let k in grade) {
if (k === 'Tim') {
result.push(k)
}
}

console.log(result) // ["Tim"]

ES8 的方法:

let grade = {
"Tim": 96,
"Bang": 99
}

console.log(Object.keys(grade).filter(item => item === 'Tim')) // ["Tim"]
// 返回一个数组,之后可以对数组进行合并、替换、查找

二、Object.values()

「点击查看详细说明」

  • 参数:目标对象
  • 返回值:值组成的数组
let grade = {
"Tim": 96,
"Bang": 99
}

console.log(Object.values(grade)) // [96,99]
console.log(Object.values(grade).filter(item => item > 97)) //[99]

三、Object.entries()

「点击查看详细说明」

1、把对象变成可遍历的对象

可以结合 ES6 lterator 使用

let grade = {
"Tim": 96,
"Bang": 99
}

for (let [k, v] of Object.entries(grade)) {
console.log(k, v)
}
// Tim 96
// Bang 99

2、可以传到 Map 中变成一个 map 对象进行操作

本质依旧是把对象变成可遍历的,符合 lterator 结构的。

let grade = {
"Tim": 96,
"Bang": 99
}
let map1 = new Map(Object.entries(grade))
map1.get("Tim") // 96