ES10|对象扩展

82 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

ES系列文章

ES10 对象扩展

Object.entries()

const obj = {
    name: 'imooc',
    course: 'es'
}
const entries = Object.entries(obj)
console.log(entries)
//[Array(2), Array(2)]
// 0: (2) ["name", "imooc"]
// 1: (2) ["course", "es"]
// length: 2

Object.fromEntriesObject.entries二者相反互逆。

Object.fromEntries()

Object.fromEntries()方法是将对象转换成数组,同样也可以将数组转化成对象。 Object.fromEntries()方法也是对象下面的静态方法。

// // ES10
const obj = {
    name: 'imooc',
    course: 'es'
}
const fromEntries = Object.fromEntries(entries)
console.log(fromEntries)

使用 Object.fromEntries 可以将 Map结构 转化成对象结构

// es6中 map
// map -> 对象
const map = new Map()
map.set('name', 'imooc')
map.set('course', 'es')
console.log(map)
const fromEntries = Object.fromEntries(map)
console.log(fromEntries)

Object.fromEntries vs Object.entries

应用:

const course = {
    math: 80,
    english: 85,
    chinese: 90
}
const res = Object.entries(course).filter(([key, val]) => val > 80)
// console.log(res)
console.log(Object.fromEntries(res))
//注意 filter 的参数是一个函数

Object.fromEntries方法  是 Object.entries方法 反向。 Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,而Object.fromEntries() 方法可以把键值对列表转换为一个对象。

一个前端小白,若文章有错误内容,欢迎大佬指点讨论!