如何管道多个数据阵列?最终,我希望实现这样的目标:
const data = [{id: 1, data:100}, {id: 2, data: 200}, {id: 3, data: 3000}, ... ]
我尝试了这个,但没有奏效:
pipe(
map(assoc('data', __, {})),
map(assoc('id', multiply(100, prop('data', __))))
)(range(1, 1000))
如果方法是使用两个管道,那么必须有一些方法同时管道两个不同的阵列。如何实施?
答案 0 :(得分:4)
我建议:
R.map(n => ({id: n, data: 100 * n}), R.range(1, 1000))
可以使用无点解决方案,但它并不优雅:
R.map(R.converge(R.merge,
[R.objOf('id'),
R.compose(R.objOf('data'), R.multiply(100))]),
R.range(1, 10))
答案 1 :(得分:0)
这是我用无点样式提出的最好的,有点hacky,重复的数字应该与zipObj给出的键数相匹配。在演进
之后,可以使用关联添加额外的键map(
pipe(
repeat(__, 2),
zipObj(['data', 'id']),
evolve({
data: multiply(100)
})
)
)(range(1, 1000))