【发布时间】:2018-03-21 19:10:42
【问题描述】:
给定以下数组:
const array1 = ["a1", "b1", "c1", "d1"],
array2 = ["a2", "b2"],
array3 = ["a3", "b3", "c3"]
是否有任何 ramda 函数可以简化以下我可以给出一个或多个数组的场景?
const nestedMap = map => {
const result = []
for(let item1 of array1)
for(let item2 of array2)
for(let item3 of array3)
result.push(map(item1, item2, item3))
return result
}
整个函数如下所示:
// Sample usage
nestedMap((item1, item2, item3) => `${item1} ${item2} ${item3}`, array1, array2, array3)
我希望避免重新发明轮子。
注意:可以接受 Vanilla javascript 或任何其他库。我最初谈到 ramda 因为它有很多功能,也许我错过了可以帮助解决这个问题的功能
【问题讨论】:
-
所以,本质上我们正在寻找一个矩阵形式。正确的?如果您还可以添加示例输出,这将有所帮助。还有,纯JS函数可以接受吗?
-
既然你在问函数式编程:为什么你的函数没有返回值?我没有看到任何
mapping 在这里发生,这看起来更像是带有回调的多维forEach。 -
@Bergi 抱歉,我已经修复了我的问题。现在它已经返回
-
@Rajesh 为什么不呢。我想明确一点,我不想获取如何使用 vanilla JS 来实现它的源代码,但如果你已经完成了一些事情,它也可能是可以接受的
标签: javascript arrays functional-programming ramda.js