ES11 中的 Object.fromEntries 方法是一个非常实用的方法,可以将数组快速转换为对象。本文将介绍如何使用 Object.fromEntries 方法来进行数组转对象,并且提供了实际的应用场景,帮助你更好的理解它的使用方法。
ES11 介绍
ES11(也称为 ECMAScript 2020)是 JavaScript 的最新版本,它于 2020 年 6 月正式发布。和它以前的版本一样,ES11 也对 JavaScript 语言的一些特性和功能进行了更新和升级。
本文将介绍其中一个被添加到 ES11 版本中的新方法:Object.fromEntries。
Object.fromEntries
Object.fromEntries() 方法是一个静态方法,它接收一个数组作为参数,并将数组转换为一个对象。
具体来说,数组中每个元素都必须是一个由两个元素组成的小数组,第一个元素是属性名,第二个元素是属性值,Object.fromEntries 方法会将每个小数组的第一个元素作为属性名,第二个元素作为属性值,最终返回一个对象。
实例代码
下面是一个使用 Object.fromEntries 方法的基本示例:
const arr = [['apple', 2], ['banana', 3], ['orange', 4]]; const obj = Object.fromEntries(arr); console.log(obj); // { apple: 2, banana: 3, orange: 4 }
在上面的代码中,我们定义一个由三个小数组组成的数组 arr,每个小数组的第一个元素是水果名称,第二个元素是水果数量。我们使用 Object.fromEntries 方法将这个数组转换为一个对象 obj,然后输出这个对象。
数组去重的应用
除了将数组转换为对象,Object.fromEntries 方法还可以用在数组去重上。下面是一个案例:
const arr = [1, 2, 3, 3, 4, 5, 5]; const obj = Object.fromEntries(Array.from(new Set(arr)).map(x => [x, true])); const uniqueArr = Object.keys(obj).map(Number); console.log(uniqueArr); // [1, 2, 3, 4, 5]
在这个例子中,我们定义了一个包含重复元素的数组 arr。我们先使用 Set 对象去重 arr 数组,然后使用 map 方法将数组中的每个元素都转换为一个小数组(例如,1 变成 [1, true],2 变成[2, true],等等)。然后,我们使用 Object.fromEntries 方法将这个数组转换为一个对象,其中键和值都是 true。最后,我们使用 Object.keys 方法得到这个对象的所有属性,再使用 map 方法将这些属性名都转换为数字,返回一个去重后的数组 uniqueArr,然后输出这个数组。
总结
在本文中,我们介绍了 ES11 中的 Object.fromEntries 方法,它可以帮助我们快速将一个由小数组组成的数组转换成对象。我们还提供了一个应用场景:使用 Object.fromEntries 方法来去除 JavaScript 数组中的重复元素。
就像本文所讲的那样 Object.fromEntries 的使用非常简单,并且它提供了其他方法无法实现的操作。相信在日常工作中,这个方法能为你省下不少时间,提高代码的可读性和扩展性。所以,让我们跑起来试试!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6492d5f248841e98940a23bb