ES10 中如何使用 Object.fromEntries() 将数组转换为对象

在 JavaScript 中,有时我们需要将数组转换为对象。在 ES10 中,可以使用 Object.fromEntries() 方法来实现这个目的。

Object.fromEntries() 方法概述

Object.fromEntries() 方法是 ES10 新增的一个静态方法,它可以将一个二维数组或者类 Map 对象转化成一个对象。

其语法如下:

Object.fromEntries(iterable)

其中,iterable 为一个可迭代对象,例如二维数组或者类 Map 对象。

它会返回一个新的对象,其中包含了从 iterable 中提取的键值对。

数组转换为对象示例

我们来看一个使用 Object.fromEntries() 方法将数组转换为对象的示例。

假设我们有一个数组,它的每个元素都是一个由键和值组成的数组,我们可以使用 Object.fromEntries() 方法将它转换为一个对象:

const arr = [['name', 'Tom'], ['age', 18], ['city', 'Shanghai']];
const obj = Object.fromEntries(arr);

console.log(obj);
// 输出:{ name: 'Tom', age: 18, city: 'Shanghai' }

使用 Object.fromEntries() 升级 reduce() 方法

在开发过程中,我们经常使用 reduce() 方法来将数组转换为对象。但是,使用 Object.fromEntries() 方法可以更加简洁地实现这个功能。

下面是一个示例,首先是使用 reduce() 方法:

const arr = [['name', 'Tom'], ['age', 18], ['city', 'Shanghai']];

const obj = arr.reduce((prev, curr) => {
  prev[curr[0]] = curr[1];
  return prev;
}, {});

console.log(obj);
// 输出:{ name: 'Tom', age: 18, city: 'Shanghai' }

然后是使用 Object.fromEntries() 方法:

const arr = [['name', 'Tom'], ['age', 18], ['city', 'Shanghai']];
const obj = Object.fromEntries(arr);

console.log(obj);
// 输出:{ name: 'Tom', age: 18, city: 'Shanghai' }

可以看到,使用 Object.fromEntries() 可以更加简洁地实现将数组转换为对象的功能。

总结

ES10 中引入的 Object.fromEntries() 方法可以很方便地将数组转换为对象,使用起来非常简单,代码风格也更加简洁。

在日常开发中,可以根据具体情况来选择使用 reduce() 方法或者 Object.fromEntries() 方法。当需要将数组转换为对象时,Object.fromEntries() 方法可以更好地满足我们的需求。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65b47884add4f0e0ffd63a14