在 ES9 中,新增了一个方法 Object.fromEntries(),它可以将键值对数组转换成对象。
解决的问题
通常情况下,我们会使用 Object.entries() 方法将一个对象转换成一个键值对数组,然后对其进行操作或者迭代。
例如:
const obj = {a: 1, b: 2}; const entries = Object.entries(obj); // [[ 'a', 1 ], [ 'b', 2 ]]
但是,在某些情况下,我们需要将一个键值对数组转换成一个对象。在ES9之前,我们一般会使用 reduce 方法这样一个经典的方式来实现:
const arr = [[ 'a', 1 ], [ 'b', 2 ]]; const obj = arr.reduce((acc, [key, value]) => ({...acc, [key]: value}), {}); // {a: 1, b: 2}
然而,这种做法看起来比较冗长,不够简洁。
为了让开发者更方便的将数组处理成对象,ES9 提供了一个新的方法 Object.fromEntries()。
使用方法
Object.fromEntries() 方法的使用非常简单,只需要传入一个数组作为参数,数组中的每一项应该都是一个键值对数组。其中,键值对数组应该包含两个元素,第一个元素为键名,第二个元素为键值。
例如:
const arr = [[ 'a', 1 ], [ 'b', 2 ]]; const obj = Object.fromEntries(arr); // {a: 1, b: 2}
示例代码
下面是一个示例代码,展示了如何使用 Object.fromEntries() 方法将一个带有相同前缀的数组转换成一个对象。
-- -------------------- ---- ------- ----- --- - - ------------------ ----------- ------------------ ----------- ------------------ ---------- -- ----- ----------- - ------------------ -- ----------------------------- ----- ---------- - -------------------------------- ------------------------ -- ---------------- ---------- --------------- ----------
指导意义
Object.fromEntries() 方法虽然仅仅是一个小小的新增,但是它的出现改善了前端开发者对于数组和对象转换的体验。我们可以更高效、简洁地将一个键值对数组转换成一个对象。在日常开发中,我们经常需要将一个包含键值对的数组转换成一个对象,使用 Object.fromEntries() 方法可以让我们更快捷地完成这个任务,提高开发效率。
总结
Object.fromEntries() 方法非常简单,也非常简洁,是一个非常实用的方法。而且由于它是 ES9 中新增的方法,所以我们在使用之前要特别注意浏览器的支持情况,避免在低版本的浏览器上出现问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fd227195b1f8cacdcbe84f