新增对象键值方法
一、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