ECMAScript 2019 中引入了一个新的方法:Object.fromEntries(),该方法可以从键值对数组中创建一个新的对象。本文将探讨 Object.fromEntries() 的用法和应用场景。
使用 Object.fromEntries()
Object.fromEntries() 接收一个包含键值对的数组,并返回一个新的对象。以下是使用该方法的语法:
Object.fromEntries(entries)
其中,entries 是一个键值对数组。例如:
const entries = [ ['name', 'Jerry'], ['age', 24], ]; const obj = Object.fromEntries(entries); // obj ==> { name: 'Jerry', age: 24 }
可以看到,Object.fromEntries() 方法可以使用键值对数组创建一个新对象。
应用场景
将 Map 转为 Object
在 JavaScript 中,有另外一个对象类型称为 Map。Map 是一种高性能的数据结构,可以存储键值对,并且可以使用任何类型的值作为键。
在一些情况下,我们需要将 Map 对象转换为普通的 JavaScript 对象。这时,Object.fromEntries() 就派上用场了。
假设有一个 Map 对象:
const map = new Map([ ['name', 'Jerry'], ['age', 24], ]);
可以使用 Object.fromEntries() 将其转换为对象:
const obj = Object.fromEntries(map); // obj ==> { name: 'Jerry', age: 24 }
这与使用数组的方法是等价的。
排序一个对象
有时候,我们需要按照对象的某个属性进行排序。然而,JavaScript 中的对象是无序的。如果我们想要将对象按照属性排序,就需要先将其转换为一个数组,然后进行排序,最后再将其转换为一个对象。
Object.fromEntries() 方法可以帮助我们将排序后的数组转换为对象。例如:
-- -------------------- ---- ------- ----- --- - - ----- -------- ---- --- ----- ----------- -- ----- ------------- - ------------------------------ ---- -- -- - - - - - ----- ----- --------- - ---------------------------------- -- --------- --- - ---- --- ----- ----------- ----- ------- -
当然,该方法需要先将对象转换为一个数组,然后进行排序,再进行转换。虽然看起来麻烦,但是可以实现按照属性排序的操作。
总结
Object.fromEntries() 是 ECMAScript 2019 中引入的一个新方法。通过使用该方法,可以从键值对数组中创建一个新的对象。我们可以使用该方法将 Map 转换为对象,或者将排序后的数组转换为对象。然而,该方法并不适用于所有场景,应该根据具体情况进行使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649968ea48841e989467068e