R.converge(R.pair, [
R.filter(x => x & 1),
R.reject(x => x & 1)
])
是否有更简单的库内方式来进行奇数和偶数的分割?
我特别感兴趣的是Ramda解决方案(而不是创建一个新函数),它接受了除法的函数。
答案 0 :(得分:1)
以下是愚蠢的。 partition
中有一个更好的解决方案,我暂时忘记了。
partition(n => n & 1, [8, 6, 7, 5, 3, 0, 9]); //=> [[7, 5, 3, 9], [8, 6, 0]]
这也会恢复您的原始订单。
groupBy
可能是最接近的。 groupBy(modulo(__, 2))
会让你亲近。
但它的输出与你的有些不同。您可以使用values
进行组合,以获得与您的版本非常相似的内容:
const parties = compose(values, groupBy(modulo(__, 2)))
parities([8, 6, 7, 5, 3, 0, 9]); //=> [[8, 6, 0], [7, 5, 3, 9]]
您可以在 Ramda Repl 上查看此操作。