如何使用Ramda将列表与单个值的重复序列执行zip操作?
使用Ramda实现列表与单个值重复序列的Zip操作
要实现将一个列表与单个值的重复序列进行zip处理,得到每个列表元素与该单个值配对的结果,你可以直接借助Ramda的R.zip和R.repeat函数完成:
const result = R.zip([1, 2, 3])(R.repeat(2)); console.log(result); // [[1, 2], [2, 2], [3, 2]]
原理说明
R.repeat(2)会生成一个无限长度的序列,序列中的每个元素都是2;R.zip会按位置将两个输入序列的元素一一配对,最终结果的长度由较短的输入序列决定(这里就是原列表[1,2,3]的长度3)。
可选方案(生成有限长度重复序列)
如果你不想依赖无限序列,可以先生成与原列表长度一致的重复值数组,再执行zip操作:
const list = [1, 2, 3]; // 生成和原列表长度相同的重复值数组 const repeatedValues = R.repeat(2, list.length); const result = R.zip(list, repeatedValues); console.log(result); // [[1, 2], [2, 2], [3, 2]]
内容的提问来源于stack exchange,提问作者user3310334
相关产品推荐
相关产品推荐

