Как получить доступ к индексу итерации в Ramda.map

Я писал что-то вроде

_.map(items, (item, index) => {});

с lodash. Обычно мне не нужно index, но иногда это полезно.

Сейчас я переезжаю в Рамду:

R.map((item, index) => {}, items);

index undefined. Конечно, я могу создать переменную index в верхней области и увеличивать ее каждый раз в теле map, но это не так с точки зрения FP, что означает Рамда. Так есть ли какая-либо сборка для получения индекса итераций?

Ответ 1

Отъезд addIndex:

Создает новую функцию итерации списка из существующей, добавив два новых параметра к своей функции обратного вызова: текущий индекс и весь список.

Это превратило бы, например, простую функцию карты Рамды в одну, более близкую к Array.prototype.map. Обратите внимание, что это будет работать только для функций, в которых функция обратного вызова итерации является первым параметром, а список - последним параметром. (Это последнее может быть несущественным, если параметр списка не используется.)

Пример из документов:

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']