在 ECMAScript 2019 标准中,JavaScript 引入了一些新的语言特性,其中之一就是 Object.fromEntries()。该方法允许我们快速地将对象数组转换为对象。
Object.fromEntries() 方法
Object.fromEntries() 方法接受一个数组,该数组的每个元素表示一个键值对,然后将这些键值对转换为一个对象。该方法的语法如下所示:
Object.fromEntries(iterable);
其中,iterable
参数是一个可迭代的对象,它包含了键值对数组,例如:
const arr = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(arr); console.log(obj); // {a: 1, b: 2, c: 3}
这将返回一个 obj
对象,其中包含了对象数组中的所有键值对。这样,我们就可以将对象数组方便地转换为一个对象。
深入探讨 Object.fromEntries()
Object.fromEntries() 方法与 JavaScript 中已有的 Object.entries() 方法互补,它允许我们将一个对象转换为一个二维数组,其中每个子数组包含了对象中的一个键值对。例如:
const obj = {a: 1, b: 2, c: 3} const arr = Object.entries(obj); console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
从上述代码可以看出,Object.entries() 方法将对象中的每个键值对转换为了一个数组元素。Object.fromEntries() 方法的作用正好相反,它将一个包含键值对数组的对象转换为一个对象。
除了上述所说的以数组为参数调用 Object.fromEntries() 方法的用法,它还可以与 Map 对象一起使用。Map 对象映射了键(包括字符串等类型)到值,Map 对象同样可以被转换为对象。示例如下所示:
const map = new Map([ ['a', 1], ['b', 2], ['c', 3] ]); const obj = Object.fromEntries(map); console.log(obj); // {a: 1, b: 2, c: 3}
Object.fromEntries() 的应用
Object.fromEntries() 方法可以用于处理对象数组,以及将类似 Map 对象的数据结构转换为对象。
在实际应用中,它还可以用于数据转换和数据清理。例如,在处理来自后端接口的数据时,我们通常会得到一组数据,其中每个对象只包含了部分键值对。我们可以使用 Object.fromEntries() 方法将这些对象转换为一个对象,从而使数据更容易使用。示例如下所示:
-- -------------------- ---- ------- ----- --- - - ------- ------------- ------- ------- ------- -------- ------- --------- ------- ------ ------- ------ -- ----- ------ - ----------------------------- ------ ------ -- -- ------- ---------- -------------------- -- ------------ ------ ------ -------- ---- ------
在上面的示例代码中,我们将对象数组 arr
转换为一个包含所有图书的 title 和 author 的对象。使用这种方式,我们可以更方便地访问、使用、清理和转换数据。
总结
Object.fromEntries() 方法是 ECMAScript 2019 标准中的一个重要特性,它使我们能够快速、简便地将对象数组转换为对象。除了与 Object.entries() 方法一起使用,它还可以与 Map 对象等数据结构一起使用。在实际应用中,它可以用于数据转换、数据清理等方面,大大简化了代码编写。在写 ES10 的代码时,不妨考虑一下使用 Object.fromEntries()。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64521b56675af4061b5c5fd9