Gle*_*ift 30 javascript mapping lodash ramda.js
我曾经写过类似的东西
_.map(items, (item, index) => {});
Run Code Online (Sandbox Code Playgroud)
与lodash.通常我不需要,index但有时它是有用的.
我现在正在迁移到Ramda:
R.map((item, index) => {}, items);
Run Code Online (Sandbox Code Playgroud)
index是undefined.当然,我可以index在上限范围内创建变量,并且每次在map体内增加它,但从FP的角度来看,Ramda代表它是有点错误的.那么是否有任何构建迭代索引的方法?
and*_*dyk 42
退房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']
Run Code Online (Sandbox Code Playgroud)