【发布时间】:2019-09-26 00:07:08
【问题描述】:
我想转换这个输入
[
{ country: 'France', value: 100 },
{ country: 'France', value: 100 },
{ country: 'Romania', value: 500 },
{ country: 'England', value: 400 },
{ country: 'England', value: 400 },
{ country: 'Spain', value: 130 },
{ country: 'Albania', value: 4 },
{ country: 'Hungary', value: 3 }
]
进入输出
[
{ country: 'England', value: 800 },
{ country: 'Romania', value: 500 },
{ country: 'France', value: 200 },
{ country: 'Spain', value: 130 },
{ country: 'Other', value: 8 }
]
这基本上是在为前 4 个 + 其他国家/地区进行 价值总和。
我正在使用带有ramdajs 的javascript,我只设法在 somehow cumbersome way so far 中做到这一点。
我正在寻找一个优雅的解决方案:有任何函数式程序员能够提供他们的解决方案吗?或者任何有用的 ramda 方法的想法?
【问题讨论】:
-
请添加您的代码,即使这是一种非常繁琐的方式
-
答案是否只需要使用该库的功能?
-
我刚刚编辑了问题以添加指向我的解决方案的可运行版本的链接。关于库,我正在寻找解决这个问题的最实用的方法,我不能仅仅为这个算法引入任何其他的函数库,比如 Iodash,但是原生 javascript 是可以的。
-
我喜欢这个问题产生的各种解决方案!
-
请不要为此使用选票。以任何方式选择最适合您的一种。我的是最简洁的之一。 appleapple 的管道更长,但步骤最简单。 customcommander 有迄今为止最详细的说明。选择最适合您的答案。
标签: javascript functional-programming ramda.js