在 ramda 中对多个数据进行管道传输 [英] Pipe on multiple data in ramda

查看:41
本文介绍了在 ramda 中对多个数据进行管道传输的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在多个数据数组上进行管道传输?最终我想实现这样的目标:

How can I pipe on multiple data arrays? Ultimately I want to achieve something like this:

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))

如果方法是使用两个管道,那么必须有某种方法可以同时通过管道传输两个不同的数组.如何实施?

If the approach is to use two pipes, then there has to be some way to pipe over two different arrays simultaneously. How can this be implemented?

推荐答案

我建议:

R.map(n => ({id: n, data: 100 * n}), R.range(1, 1000))

可以使用无点解决方案,但它并不优雅:

A point-free solution is available, but it's not elegant:

R.map(R.converge(R.merge,
                 [R.objOf('id'),
                  R.compose(R.objOf('data'), R.multiply(100))]),
      R.range(1, 10))

这篇关于在 ramda 中对多个数据进行管道传输的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆