数组对象互转Object.entries()&&Object.fromEntries()

使用 Object.fromEntries 将数组转成对象

Object.fromEntries() 方法把键值对列表转换为一个对象。

语法:

  • Object.fromEntries(iterable)

iterable:类似 Array 、 Map 或者其它实现了可迭代协议的可迭代对象。

返回一个新的对象

let keyArray = [
    ['name','Yimning'],
    ['age','18']
]

console.log(Object.fromEntries(keyArray))
// {name:'Yimning',age:'18'}
  • Object.entries()

Object.entries(obj)方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in循环还会枚举原型链中的属性)。

let keyObj = {
	name:'Yimning',
	age:'18'
}

console.log(Object.entries(keyObj))
// [['name','Yimning'],['age','18']]

其中Object.entries()与Object.fromEntries()为互逆操作

使用 Object.fromEntries 将 Map 转成对象

object.fromEntries()还可以将Map数据类型的数据转为对象

let map = new Map([['name','Yimning'],['age','18']])
console.log(map)
// {"name" => "Yimning", "age" => "18"}
console.log(Object.fromEntries(map))
// {name:'Yimning',age:'18'}

Object.entries和Object.fromEntries混合使用-对象到对象的转换

let age = {p1:18,p2:19,p3:20}
const result = Object.fromEntries(Object.entries(age).filter(([key,value])=> value > 19))
console.log(result)
// {p3: 20}

如果不使Object.fromEntries将数组转为对象,那应该怎么实现?

let arr = [
 ['name','Yimning'],
 ['age',18]
]

function toObject(arr){
   return Array.from(arr).reduce(
   	(acc,[key,value]) => Object.assign(acc,{[key]:value}),	  {}
   )
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值