如何在 Ramda 映射期间访问集合?
How can the collection be accessed during a Ramda map?
举个很简单的例子:
R.map((a, b) => {
console.log(a, b) // 1, undefined
}, [1, 2, 3])
如何在地图中访问整个集合?
使用该集合的人为示例可能是:
R.map((item, collection) => {
console.log(item === collection.length)
}, [1, 2, 3])
我可以先将它存储在一个变量中,但这是函数链的末尾
R.map
不允许您访问映射函数内部的集合,但您可以围绕映射函数创建一个闭包,以便给自己一个机会为集合分配名称。
((collection) => R.map((item) => {
console.log(item === collection.length)
}, collection))([1, 2, 3]);
正如评论所说,Ramda 默认不包含它是有充分理由的。但是有一个名为 addIndex
的装饰器,它添加了索引和集合:
const fn = R.addIndex(map)((elt, idx, coll) => elt == coll.length);
fn([1, 2, 3]); //=> [false, false, true]
举个很简单的例子:
R.map((a, b) => {
console.log(a, b) // 1, undefined
}, [1, 2, 3])
如何在地图中访问整个集合?
使用该集合的人为示例可能是:
R.map((item, collection) => {
console.log(item === collection.length)
}, [1, 2, 3])
我可以先将它存储在一个变量中,但这是函数链的末尾
R.map
不允许您访问映射函数内部的集合,但您可以围绕映射函数创建一个闭包,以便给自己一个机会为集合分配名称。
((collection) => R.map((item) => {
console.log(item === collection.length)
}, collection))([1, 2, 3]);
正如评论所说,Ramda 默认不包含它是有充分理由的。但是有一个名为 addIndex
的装饰器,它添加了索引和集合:
const fn = R.addIndex(map)((elt, idx, coll) => elt == coll.length);
fn([1, 2, 3]); //=> [false, false, true]