使用ramdajs将对象转换为对象数组

时间:2015-12-01 16:52:55

标签: javascript functional-programming ramda.js

我正在编写一个程序,计算文件中的单词。

假设对象喜欢这个:

{
  I: 2,
  it: 4,
  that: 1
}

我想成功:

[
  { word: 'I', count: 2 }, 
  { word: 'it', count: 4 }, 
  { word: 'that', count: 1 }
]

我可以通过使用命令式编程来实现目标:循环对象......

查看文档和谷歌,但无法找到适合的方法:(

由于

1 个答案:

答案 0 :(得分:3)

可以使用R.toPairsR.zipObj

来实现
//    convert :: {a} -> [{ word :: String, count :: a }]
const convert = R.compose(R.map(R.zipObj(['word', 'count'])), R.toPairs);

convert({I: 2, it: 4, that: 1});
// => [{"count": 2, "word": "I"}, {"count": 4, "word": "it"}, {"count": 1, "word": "that"}]