ramda.js - Ramda:如何使用带有两个参数的 R.map?
问题描述
它适用于一对数组。在这个例子中我不需要使用 Ramda。
const addChild1 = (x , y) => `${x}.addChild(${y}); `
const result1 = addChild(["containerA"], ["a1","a2", "a3"])
console.log(result1) //containerA.addChild(a1,a2,a3)
我无法使其与二维字符串矩阵一起使用。我使用R.map
了 ,但在第二个参数中我得到了“未定义”。
const addChild2 = R.map ((x , y) => `${x}.addChild(${y}); `)
const result2 = addChild2(["containerA", "containerB", "containerC"], [["a1","a2", "a3"], ["b1","b2", "b3"], ["c1","c2", "c3"]])
console.log(result2) //["containerA.addChild(undefined); ","containerB.addChild(undefined); ","containerC.addChild(undefined); "]
如何避免“未定义”?理想的输出如下:
["containerA.addChild("a1","a2", "a3"); ","containerB.addChild("b1","b2", "b3"); ","containerC.addChild("c1", "c2", "c3");"]
解决方案
map
将字符串作为第二个参数,所以在这种情况下,只["containerA", "containerB", "containerC"]
进入循环
您应该zipWith
在这种情况下使用而不是 map
const addChild2 = R.zipWith((x, y) => `${x}.addChild(${y}); `)
const result2 = addChild2(
["containerA", "containerB", "containerC"],
[
["a1", "a2", "a3"],
["b1", "b2", "b3"],
["c1", "c2", "c3"],
]
)
console.log(result2)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
推荐阅读
- windows-10 - 无法对 GCP IAP 进行身份验证
- javascript - 如何通过其arrtibute(不是ID不是Class)在html元素中添加css
- php - 使用 laravel 进行多文件上传和位置存储
- python - RASA X-Linux 服务器安装
- javascript - 为什么 package-lock.json 列出的依赖项与 package.json 不同?
- image - 将 svg 转换为像这样的可复制/可粘贴表情符号
- javascript - 如何对对象的子数组进行排序
- c++ - 数组指针 c++
- apache-kafka - 如何使用基于密钥的身份验证在 kafka 中使用 SFTP CSV SOURCE 连接器?
- flutter - 在 Flutter 中显示本地应用目录中的图像