在 JavaScript 的 ES10 标准中,新增了一个对象方法 fromEntries,它能够将一个由键值对数组转换成对象。这篇文章将会介绍 fromEntries 方法的用法与一些示例,以及应用它能够解决的问题。
1. fromEntries 方法的用法
Object.fromEntries()
方法接受一个包含键值对的二元数组(例如 [ [ key1, value1 ], [ key2, value2 ] ]
),并返回一个新的对象。这个方法常常用于将 map 类型转换成对象类型。
语法:
Object.fromEntries(iterable)
参数:
iterable
:包含键值对数组的二元数组。
返回值:
- 返回一个新的对象。
需要注意的是,fromEntries 方法需要在支持 ECMAScript 2019 的浏览器中才能使用。如果你需要更广泛地支持旧版的浏览器,请使用一个 polyfill 或者自己实现一个简单的兼容方法。
2. 使用 fromEntries 方法
2.1. 将 map 转换成对象
一个 map 字典类型,键和值都是字符串:
-- -------------------- ---- ------- ----- --- - --- ----- -------- --------- ------- ---- ------- --------- --- ----- --- - ------------------------ ----------------- -- ---- ----- -------- ---- --- ---- -------- -
2.2. 对象的键值交换
JavaScript 中常常需要对一个对象进行键值交换,fromEntries 配合 entries 方法进行操作:
-- -------------------- ---- ------- ----- --- - - ----- -------- ---- --- ---- -------- -- ----- ------- - ------------------- -------------------------- ---- ----- -- -- - ------ --- -- -- --------------------- -- ---- ------ ------- --- ------ ------- ----- -
2.3. 数组的快速去重
使用 Set 对一个数组进行去重是 JavaScript 常见的操作,这里介绍一种全新的方式:fromEntries 配合 entries 方法和 Set 对象:
const arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]; const uniqueArr = Object.fromEntries( [...new Set(arr)].map(val => [ val, val ]) ); console.log(uniqueArr); // 输出:{ 1: 1, 2: 2, 3: 3, 4: 4, 5: 5 }
3. 总结
以上就是 fromEntries 方法的使用方式以及一些示例。对于从 map 转换成对象,对象的键值交换,甚至是数组的快速去重,这个方法提供了一种简单易用的解决方案。由于这个方法在许多浏览器中还未实现,建议在使用前做好兼容性方案。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65bb25adadd4f0e0ff3c4652