我们得到object.entries(),它转换一个对象→数组。但是如果你想反其道而行之怎么办?不要再想了!使用Object.fromEntries()来排列→对象。constkeyValuePair=[['cow',''],['pig',''],];Object.fromEntries(keyValuePair);//{cow:'',pig:''}Object.fromEntries我们首先指出对象对象的结构是具有键和值的东西。constobject={key:'value',};如果我们想将某些东西转换为对象,我们需要传递具有这两个要求的东西:key和value。具有嵌套键值对的Map对象数组使用Object.fromEntries将数组转换为对象这是键值对嵌套数组constnestedArray=[['key1','value1'],['key2','value2'],];当我们将Object.fromEntries应用于它时,我们可以从中获取对象。Object.让我们创建新的Map对象//使用构造函数constmap=newMap([['key1','value1'],['key2','value2'],]);//或者我们可以使用实例方法,“set”constmap=newMap();map.set('key1','value1');map.set('key2','value2');//result//Map(2){"key1"=>"value1","key2"=>"value2"}现在,我们使用Object.fromEntries将Map转换为对象Object.fromEntries(map);//{key1:"value1",key2:"value2"}Object.fromEntries和Othertypesoftypeerrors当你尝试将其他数据类型传递给Object.fromEntries时要小心,它们都会抛出错误?UncaughtTypeError确保你只传递键值对。Object.fromEntries与Object.entriesObject.fromEntries具有与Object.entries相反的效果。所以Object.entries将转换我们的数组并返回一个新的键值对嵌套数组。而Object.fromEntries会将这个数组转回一个对象。constobject={key1:'value1',key2:'value2'};constarray=Object.entries(object);//[["key1","value1"],["key2","value2"]]对象。fromEntries(array);//{key1:'value1',key2:'value2'}ObjecttoObjectconversion如果你阅读了原始的TC39提案,这就是引入这个新方法的原因。随着Object.entries的引入,没有一种简单的方法可以将结果转换回对象。通常当我们选择使用Object.entries时,是因为它使我们能够访问许多漂亮的数组方法,如过滤器。但在转换完成后,我们有点被那个数组困住了。constfood={meat:'',broccoli:'',carrot:''};//StuckinArraylandconstvegetarian=Object.entries(food).filter(([key,value])=>key!=='meat',);//[["broccoli",""],["carrot",""]]我们可以利用所有这些有用的数组方法,并且仍然取回我们的对象,最后,从对象到对象的转换。constfood={meat:'',broccoli:'',carrot:''};//Yay,stillinObjectlandconstvegetarian=Object.fromEntries(Object.entries(food).filter(([key,value])=>key!=='meat'),);//{broccoli:'',carrot:''}浏览器支持除了InternetExplorer,大多数主流浏览器都支持该方法。如果对您有所启发和帮助,您可以关注、收藏、转发或留言讨论。这是对作者最大的鼓励。
