在 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