ECMAScript 2021 中的 Object.fromEntries 解析及其应用场景
在 ECMAScript 2019 中,我们已经看到了 Object.entries() 的出现,它可以将一个对象转化为一个键值对数组。而在 ECMAScript 2021 中,我们又迎来了一个新的方法 Object.fromEntries(),它可以将一个键值对数组转化为一个对象。本文将详细解析 Object.fromEntries() 的用法和应用场景。
Object.fromEntries() 的用法
Object.fromEntries() 方法可以接收一个键值对数组作为参数,然后将其转化为一个对象。它的语法如下:
----------------------------
其中 iterable 是一个可迭代对象,它的每个元素都是一个键值对数组,例如:
----- -------- - --------- ---------- -------- -----------
我们可以调用 Object.fromEntries() 方法将 iterable 转化为一个对象:
----- --- - ----------------------------- ----------------- -- - ----- --------- ----- -------- -
需要注意的是,如果 iterable 中有重复的键名,后面的键值会覆盖前面的键值。例如:
----- -------- - -------- ---------- ------- ----------- ----- --- - ----------------------------- ----------------- -- - ---- -------- -
Object.fromEntries() 的应用场景
- 将 Map 转化为对象
在我们使用 Map 存储数据时,有时候需要将其转化为对象。这时候就可以使用 Object.fromEntries() 方法,例如:
----- --- - --- ------------- ---------- -------- ------------ ----- --- - ------------------------ ----------------- -- - ----- --------- ----- -------- -
- 将键值对数组转化为对象
在我们处理数据时,有时候需要将键值对数组转化为对象。这时候就可以使用 Object.fromEntries() 方法,例如:
----- -------- - --------- ---------- -------- ----------- ----- --- - ----------------------------- ----------------- -- - ----- --------- ----- -------- -
- 将对象转化为另一个对象
有时候我们需要将一个对象转化为另一个对象,这时候就可以使用 Object.fromEntries() 方法结合 Object.entries() 方法,例如:
----- ---- - - ----- --------- ----- -------- -- ----- ---- - -------------------------------------------------- ------- -- ----- ----------------------- ------------------ -- - ----- --------- ----- -------- -
在这个例子中,我们先使用 Object.entries() 方法将 obj1 转化为一个键值对数组,然后使用 map() 方法将每个值转化为大写,最后使用 Object.fromEntries() 方法将其转化为一个新的对象 obj2。
总结
Object.fromEntries() 方法可以将一个键值对数组转化为一个对象,它可以方便地将 Map 转化为对象,将键值对数组转化为对象,以及将一个对象转化为另一个对象。我们可以结合使用 Object.entries() 方法和 map() 方法来实现更加复杂的转化操作。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6613ce70d10417a22244a905