點燈坊

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

如何將 Object 轉成 Object Array ?

Sam Xiao's Avatar 2021-05-14

有時 API 會回傳 Object,但實務上 Object Array 還是比較好用,因此我們會想將 Object 轉成 Object Array。

Version

Ramda 0.27.1

Object to Object Array

import { pipe, map, zipObj, toPairs } from 'ramda'

let data = {
  'FP in JavaScript': 100,
  'Programming Haskell': 200,
  'Speaking JavaScript': 300
}

pipe(
  toPairs,
  map(zipObj(['title', 'price'])),
)(data) // ?

使用 pipe() 組合 IIFE:

  • toPairs:將 Object 轉成 Value Array
  • map(zipObj(['title', 'price'])):提供 Key Array 給 zipObj() 組成 Object,再由 map() 產生 Object Array

arr000

Conclusion

  • zipObj() 算是本文關鍵,由於它需要 Value Array,因此使用 toPairs() 將 Object 轉成 Value Array

Reference

Ramda, toPairs()
Ramda, zipObj()