我有两个数组,其中一个是稀疏的。我想在它们上执行本质上是外部连接的操作。
const a = ['a', 'b']
a[3] = 'c'
// a is Array(4) [ "a", "b", <1 empty slot>, "c" ]
R.zipSparse([1, 2, 3, 4], a)
// expected output: [[1, 'a'], [2, 'b'], [3, undefined], [4, 'c']]任何关于如何在Ramda或普通Javascript欢迎中实现这一功能的建议。
发布于 2018-03-20 13:50:23
function zipSparse(arr, join) {
return arr.map((i, index) => [i, join[index]])
}为了解释这里发生了什么,我们使用map迭代器,遍历arr中的每个项,然后在第二个数组联接的索引处加入相同的项
发布于 2018-03-20 13:58:39
这实际上是R.zip的行为。
更具体地说,R.zip将事情合并到所报告的输入长度中的较小部分。它们都有长度4,因此它将返回一个四元素数组作为响应。索引3将包含[3, undefined]。
当然,在没有Ramda的情况下,这很容易写成@JoeWarner的回答和@dsfq秀的评论。
https://stackoverflow.com/questions/49385871
复制相似问题