ES10 新增方法:Object.fromEntries()

阅读时长 4 分钟读完

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

纠错
反馈