手机版

快速理解ES10中object . from条目的用法

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

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或者邮箱删除。