ECMAScript 2021 中的 Object.fromEntries 方法的用法

阅读时长 4 min read

在 ECMAScript 2019 中,我们看到了 Object.fromEntries 方法的引入。这个方法以一种简洁的方式将一个键值对的数组转换成一个对象。在 ECMAScript 2021 中,Object.fromEntries 方法被进一步改进,使其更加易于使用和灵活,本文将介绍其使用方法。

什么是 Object.fromEntries 方法?

Object.fromEntries 方法是 ES2019 标准中所引入的方法,它接收一个二维数组作为参数,其中每一个数组的第一个元素作为键,第二个元素作为值,然后将它们组成对象并返回。在 ECMAScript 2021 中,它可以接收一个类似 Map 的数据结构,且可以在生成对象时指定原型、属性描述符等等。

示例代码

下面是一个使用 Object.fromEntries 方法的示例代码:

在以上代码中,我们输入一个包含四个键值对的二维数组,然后将其传入 Object.fromEntries 方法,该方法将二维数组转换为一个对象并返回。这个对象包含所有的键值对,每个键值对由二维数组中的元素组成。

Object.fromEntries 方法的更高级用法

在 ECMAScript 2021 中,Object.fromEntries 方法不仅仅是将一组键值对数组转换成对象,它还可以接受一个 Map 或任何具有 Iterator 接口的对象作为参数,其中的键值对将被用于构造一个新的对象。

除此之外,Object.fromEntries 方法还支持传入第二个可选参数,用于指定新对象的原型以及属性描述符。通过传入该参数,您可以构造具有特定原型和属性描述符的新对象。

这里是一个基于 Map 对象创建对象的示例:

在这个示例中,我们创建了一个 Map 对象,并将其传入 Object.fromEntries 方法中,该方法将 Map 转换为一个对象并返回。

下面是一个使用属性描述符的示例:

在以上示例中,我们除了输入一个键值对数组外,还传入了一个第二个可选参数。

该参数是一个对象,它包含一个 proto 属性,用于指定新对象的原型,以及若干个具有属性描述符的对象,用于指定新对象中各个属性的描述符。

通过这种方式,我们可以根据需要定制新生成的对象的类型,并且可以详细地控制某些属性的特征。

结语

Object.fromEntries 方法在 ECMAScript 2021 中增强了其功能,使其更加灵活易用。在实际开发中,您可以将其用于将一组键值对数组转换为对象,或者利用其支持传入 Map 对象和属性描述符的特性来生成高度定制化的对象。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d7c056a941bf7134de3664