在 ES8 中使用 Object.fromEntries 方法将数组转换为对象

阅读时长 3 分钟读完

在 JavaScript 中,我们经常需要将数组转换为对象。ES6 中引入了 Object.assign() 方法,可以方便地将数组转换为对象,但是这种方法只适用于键值对具有相同属性名的情况。在 ES8 中,我们可以使用 Object.fromEntries() 方法,实现更灵活的数组转换为对象的形式。

Object.fromEntries 方法详解

Object.fromEntries() 方法是 ES8 新增的方法,它允许我们将一个由键值对组成的二维数组转换为一个对象。我们可以将数组的每一项看作是一个数组,其中第一项代表键名,第二项代表属性值。

Object.fromEntries 方法的使用示例

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

在这个示例中,我们创建了一个二维数组 arr,其中每个子数组的第一项是键名,第二项是对象中该属性的属性值。然后我们将 arr 对象传递给 Object.fromEntries() 方法,返回的是一个包含键值对的对象 obj

与 Object.assign() 的比较

Object.assign() 方法是用于将源对象的属性复制到目标对象中的一种方法。虽然它也可以将数组转换为对象,但是它仅能将数组转换为键名相同且值相等的对象。

在上述示例中,Object.assign() 方法只复制了数组 arr 的属性值,而没有将它们转换为对象的键值对。

使用 Object.fromEntries() 方法进行浅拷贝

由于 Object.fromEntries() 在从二维数组转换为对象时进行了浅拷贝,因此它可以用来创建新对象并复制原始对象的属性。

在这个示例中,我们先使用 Object.entries() 方法将原始对象 obj1 转换为二维数组 arr1,然后再将它传递给 Object.fromEntries() 方法,将 arr1 转换为对象。这样就可以创建一个新的对象,使用它来代替原始对象,而不影响原始对象的值。

总结

通过本文的介绍,我们学习了在 ES8 中使用 Object.fromEntries() 方法将数组转换为对象的方法,并比较了该方法与 Object.assign() 的不同之处。Object.fromEntries() 方法的出现为我们的开发带来了更灵活、更方便的解决方案,我们可以根据具体情况选择不同的方法来实现我们的开发需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ebf77ef6b2d6eab3643fd8

纠错
反馈