ES8(二) —— Object (keys、values、entries)
狐七 JavaScriptES6
# ES8新增对对象快速遍历的方法
# Object.keys()
- 参数是目标对象
- 返回的是指定对象的键组成的数组
# 返回一个数组
ES5
let grade = {
"lilei": 96,
"hanmeimei": 99
}
let result = []
for (let k in grade) {
result.push(k)
}
console.log(result) //["lilei", "hanmeimei"]
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
ES8
let grade = {
"lilei": 96,
"hanmeimei": 99
}
console.log(Object.keys(grade)) //["lilei", "hanmeimei"]
1
2
3
4
5
6
2
3
4
5
6
# 条件筛选
ES5
let grade = {
"lilei": 96,
"hanmeimei": 99
}
let result = []
for (let k in grade) {
if(k === 'lilei'){
result.push(k)
}
}
console.log(result) // ["lilei"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
ES8
let grade = {
"lilei": 96,
"hanmeimei": 99
}
console.log(Object.keys(grade).filter(item => item === 'lilei')) // ["lilei"]
// 返回一个数组,之后可以对数组进行合并、替换、查找
1
2
3
4
5
6
7
2
3
4
5
6
7
# Object.values()
- 参数是目标对象
- 返回的是值组成的数组
let grade = {
"lilei": 96,
"hanmeimei": 99
}
console.log(Object.values(grade)) // [96,99]
console.log(Object.values(grade).filter(item => item > 97)) //[99]
1
2
3
4
5
6
7
2
3
4
5
6
7
# Object.entries()
# 可以把对象变成可遍历的对象
可以结合 ES6(十五)—— lterator 使用
let grade = {
"lilei": 96,
"hanmeimei": 99
}
for(let [k, v] of Object.entries(grade)){
console.log(k,v)
}
// lilei 96
// hanmeimei 99
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 可以传到Map中变成一个map对象进行操作
本质依旧是把对象变成可遍历的,符合lterator
结构的
let grade = {
"lilei": 96,
"hanmeimei": 99
}
let map1 = new Map(Object.entries(grade))
map1.get("lilei") // 96
1
2
3
4
5
6
2
3
4
5
6