微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐