我的问题很简单.我最近从
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,6]]);
如果要创建一个新的可变参数函数,将每个列表作为单独的参数,那么可以使用R.unapply包装该函数.
const concatAll_ = R.unapply(R.reduce(R.concat,[])); concatAll_([1,6]);
Ramda还有一个R.unnest函数,当给出一个列表列表时,它们会将它们连接在一起.
R.unnest([[1,6]]);