在 ES12 中,Object.fromEntries 方法提供了一种简单有效的方式,将数组转换为对象。该方法可以接收一个由键值对数组组成的数组,并将这些键值对转换成对象中的属性和值。
在使用 Object.fromEntries 方法前,我们需要先理解 ES6 中的数组方法:Array.prototype.entries() 方法。该方法返回一个包含键值对数组的迭代器。我们可以将其与 ES7 中的 Array.prototype.includes() 方法一起使用,来判断一个数组是否包含给定的值。
接下来,我们将详细介绍如何使用 Object.fromEntries 方法将数组转换为对象。我们可以将数组中的键值对以特定的格式映射到一个新的对象中。这可以通过以下代码实现:
const entries = [ ['key1', 'value1'], ['key2', 'value2'], ['key3', 'value3'], ]; const obj = Object.fromEntries(entries); console.log(obj); // {key1: "value1", key2: "value2", key3: "value3"}
该代码段首先创建一个键值对数组(entries),然后使用 Object.fromEntries 方法将该数组转换成一个对象(obj)。该对象包含了所有的键值对。
需要注意的是,Object.fromEntries 可以在已经存在属性的对象上添加新的属性,也可以将现有的属性覆盖为新的值。因此,如果我们将数组中的相同键名映射到不同的值,那么只有最后一个映射会被保留。
const entries = [ ['key1', 'value1'], ['key2', 'value2'], ['key1', 'value3'], ]; const obj = Object.fromEntries(entries); console.log(obj); // {key1: "value3", key2: "value2"}
在此示例中,'key1' 已经在前两个键值对中映射到了 'value1' 和 'value2',但最后一个键值对中将其映射到了 'value3'。因此,最终生成的对象只将 'key1' 映射到了 'value3'。
总结来说,使用 Object.fromEntries 方法是将键值对数组转化为对象的最简单的方式之一。这种技术在处理 API 返回的数据时非常有用,因为有些 API 返回的数据可能在形式上更接近于数组,而不是对象。使用 Object.fromEntries 方法,我们可以轻松地将这些数据转换为适合我们的目标应用程序的对象。
参考资料:
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658fb71deb4cecbf2d54f050