點燈坊

失くすものさえない今が強くなるチャンスよ

使用 Object.fromEntries() 將 Pair Array 轉成 Object

Sam Xiao's Avatar 2020-11-27

ECMAScript 2015 新增了 Object.fromEntries() 可將 Pair Array 轉成 Object。

Version

ECMAScript 2015

Object.fromEntries()

let data = [
  ['FP in JavaScript', 100],
  ['Get Programming with Haskell', 200],
  ['Speaking JavaScript', 300]
]

Object.fromEntries(data) // ?

Data 為 Pair Array,每個 Pair 包含 Object 的 key 與 value。

Object.fromEntries() 可直接將 Pair Array 轉成 Object。

entries000

let data = new Map([
  ['FP in JavaScript', 100],
  ['Get Programming with Haskell', 200],
  ['Speaking JavaScript', 300]
])

Object.fromEntries(data) // ?

Object.fromEntries() 事實上是支援 Iterable,因此 Map 也適用。

entries002

fromPairs()

import { fromPairs } from 'ramda'

let data = [
  ['FP in JavaScript', 100],
  ['Get Programming with Haskell', 200],
  ['Speaking JavaScript', 300]
]

fromPairs(data) // ?

Ramda 的 fromPairs() 等效於 Object.fromEntries()

fromPairs() 並不支援 Map

entries001

Conclusion

  • Object.fromEntries() 支援 Iterable,因此 Array 與 Map 皆適用
  • fromPairs() 只支援 Array,不支援 Map

Reference

MDN, Object.fromEntries()