有時 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 Arraymap(zipObj(['title', 'price']))
:提供 Key Array 給zipObj()
組成 Object,再由map()
產生 Object Array
Conclusion
zipObj()
算是本文關鍵,由於它需要 Value Array,因此使用toPairs()
將 Object 轉成 Value Array