ES10 新增的 Object.fromEntries() 是一个强大的方法,可以将包含键值对的 map 转换为对象。该方法可以将一个数组或者可迭代对象转换为对象。
为什么需要 Object.fromEntries()
在开发中,我们会经常使用到 map 这个构造函数来创建一个容纳键值对的集合。而在处理数据时,我们可能需要将这个集合转换为一个对象。在 ES10 之前,我们使用对象字面量、Object.assign() 或者遍历 map 然后对该对象进行赋值来完成这个转换。
但是这些转换方法可能存在一些限制,而使用 Object.fromEntries() 就可以轻松实现这个转换。
用法和示例
Object.fromEntries() 接收一个二维数组或者可迭代对象,返回一个由键值对组成的对象。
参数
- iterable:一个二维数组或者可迭代对象,必须返回一个可迭代的迭代器对象。
返回值
- 由键值对组成的对象。
下面是基于对象字面量的方法:
----- --- - - ----- -------- ---- --- -------------- ------- --
使用 Object.keys()、map 和 reduce 方法,我们可以进行 map 转换:
----- ------- - -------------------------- -- ----- ----------- ----- ---- - ----------------- ------------
使用 Object.fromEntries() 的简洁方法:
----- ---- - ----------------------------------------
从上面的例子可以看出,使用 Object.fromEntries() 之后我们可以节省很多代码。
给定一个二维数组时
----- --- - - -------- ------- ------- ---- ----------------- --------- -- ----- --- - ------------------------ ---------------- -- ------ ------ ---- --- -------------- --------
给定一个可迭代对象时
----- ------ - --- ----- -------- -------- ------- ---- ----------------- ------- --- ----- --- - --------------------------- ---------------- -- ------ ------- ---- --- -------------- ------
使用 Object.fromEntries() 实现对象的反转
----- --- - - -- --- -- --- -- -- -- ----- --- - ---------------------------- --- -- --- ---- ------------------------------------ -- ---- ---- --- ---- --- ----
从上面的例子看出,使用 Object.fromEntries() 可以方便的完成对象的反转。
总结
在开发中,我们可能经常需要将集合转换为对象。在 ES10 之前,我们可能会使用对象字面量、Object.assign() 或者遍历 map 然后对该对象进行赋值来完成这个转换。而 Object.fromEntries() 可以更快捷便利地完成这个转换。
使用 Object.fromEntries() 我们可以:
- 将一个 map 转换为对象
- 将一个数组转换为对象
- 将一个可迭代对象转换为对象
- 反转对象的键值对并构建为新的对象
在使用 Object.fromEntries() 时,需要注意参数的格式和返回值的格式。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6454723c968c7c53b0857304