我曾经写过类似的东西
_.map(items, (item, index) => {});
与洛达什。通常我不需要index
但有时它是有用的。
我现在要迁移到 Ramda:
R.map((item, index) => {}, items);
index
is undefined
。当然,我可以创建变量index
在上限范围内并每次增加它map
但从 FP 的角度来看 Ramda 所代表的有点错误。那么是否有任何构建方式来获取迭代索引?
查看addIndex http://ramdajs.com/0.21.0/docs/#addIndex:
通过向其回调函数添加两个新参数:当前索引和整个列表,从现有列表迭代函数创建一个新的列表迭代函数。
例如,这会将 Ramda 的简单映射函数转变为更类似于 Array.prototype.map 的函数。请注意,这仅适用于迭代回调函数是第一个参数且列表是最后一个参数的函数。 (如果不使用 list 参数,后者可能不重要。)
文档中的示例:
var mapIndexed = R.addIndex(R.map);
mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);
//=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)