javascript – 在Ramda中避免双重连续

我的问题很简单.我最近从 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]]);

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...