快速理解ES10中object . from条目的用法
Object.fromEntries方法是条目的反向操作,其功能是将键值对的数组转换为对象
同样,这种方法已成为ES10中的第4阶段建议:
对象.条目
在介绍fromEntries之前,请查看条目的用法。此方法返回对象本身的可枚举属性数组:
常量对象={ a: '1 ',b: 2 }对象条目(对象)
您也可以通过新的地图构造函数将对象转换为地图:
新地图(对象.条目(对象))//地图(2) {'a'='1 ',' b '=2 }
对象. fromEntries
另一方面,fromEntries方法将数组转换为对象:
Object.fromEntries([['a ',' 1'],['b ',2]])
当然,您可以传入地图并将其转换为对象:
常量映射=新映射()。set('a ',1)。集合(' b ',2)对象。来自条目(地图)
几个注意事项
当传入参数中有重复的键时:
传入到fromEntries的参数,如果有重复的键,将采用后面的键:
Object.fromEntries([['a ',' 1'],['a ',' 2 '])
虽然条目不支持符号作为关键字,但是fromEntries可以:
对象。从条目([[s,1]]对象)。条目({ s 33601 })上述代码的效果如下。如果条目接收的对象中有一个符号作为关键字,它将直接转换为字符串:
Key是字符串,或者符号以外的类型被强制为字符串:
他可以接收任何类的数组,比如Map,甚至是带有自定义迭代器的对象:
obj={ } obj[symbol . iterator]=function *(1){ yield[1,11] yield [2,22] yield [3,33]} console . dir(object . from entries(obj))
最后,有些属性只支持创建可遍历的对象
应用:过滤属性
定义一个函数,其第一个参数是一个对象,并接收其他几个参数作为要保留的属性
函数foo(obj,键){返回对象。从条目(对象。条目(对象)。筛选器(([key])=key . includes(key)))} console . table(foo({ name : ' oli ',age: '12' },' name ')
应用:处理表单
假设我们有这样一组数据:
[{name:' oli ',age: 12},{name:' troy ',age: 14}]如果需要填充到csv和sql数据库表中,只需要以下方法来过滤数据:
arr=[{ name: 'oli ',age: 12},{ name: 'troy ',age : 14 }]obj=object . from entries(arr . map(({ name,age})=[name,age]). console . table(obj)
数据过滤后,可以轻松粘贴到Excel中或存储在数据库中。
应用:交换属性和值
函数foo(obj) {返回object . from entries(object . entries(obj))。map(([key,value])=[value,key]))} console . table({ name : ' oli,age : ' 12 ' })console . table(foo({ name : ' oli,age : ' 12 ' }))
使用数组方法实现的还有其他功能,这里就不一一展示了:将url查询字符串转换为对象
query=object . from entries(new urlsearchprams(' foo=barbaz=qux ')//{ foo : ' bar ',baz : ' qux ' }
测试环境
如果你想尝试童鞋,需要下载chrome beta,确保chrome浏览器版本大于73:
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:快速理解ES10中object . from条目的用法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。