我的问题很简单.我最近开始使用Ramda,我喜欢它,因为它是纯粹的功能.我对concat函数有一点问题,因为它只接受两个列表作为参数.因此,如果我需要连接三个或更多列表,我必须链接这样的函数:( concat(list1, concat(list2, concat(list3, list4)))
对于四个列表连接).有没有更好的方法来做到这一点,我不知道?谢谢.
如果要连接列表列表,可以使用R.concat
空列表作为初始值来减少列表.
const concatAll = R.reduce(R.concat, []); concatAll([[1, 2], [3, 4], [5, 6]]);
或者直接将列表传递给R.reduce
.
R.reduce(R.concat, [], [[1, 2], [3, 4], [5, 6]]);
如果要创建一个新的可变参数函数,将每个列表作为单独的参数,则可以使用该函数包装该函数R.unapply
.
const concatAll_ = R.unapply(R.reduce(R.concat, [])); concatAll_([1, 2], [3, 4], [5, 6]);
Ramda还有一个R.unnest
函数,当给出列表列表时,它们会将它们连接在一起.
R.unnest([[1, 2], [3, 4], [5, 6]]);