乐趣区

关于javascript:ES8二-Object-keysvaluesentries

目录

  • ES8 新增对对象疾速遍历的办法

    • Object.keys()

      • 返回一个数组
      • 条件筛选
    • Object.values()
    • Object.entries()

      • 能够把对象变成可遍历的对象
      • 能够传到 Map 中变成一个 map 对象进行操作
  • ES6-ES10 学习幅员

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"]

ES8

let grade = {
  "lilei": 96,
  "hanmeimei": 99
}

console.log(Object.keys(grade)) //["lilei", "hanmeimei"]
条件筛选

ES5

let grade = {
  "lilei": 96,
  "hanmeimei": 99
}

let result = []

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

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

ES8

let grade = {
  "lilei": 96,
  "hanmeimei": 99
}

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

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]

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
能够传到 Map 中变成一个 map 对象进行操作

实质仍旧是把对象变成可遍历的,合乎 lterator 构造的

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

ES6-ES10 学习幅员

退出移动版