Мне не хватает опции, как получить номер индекса внутри map
функции, используя List
из Immutable.js
:
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
Документация показывает, что map()
возвращается Iterable<number, M>
. Есть ли какой-нибудь элегантный способ, что мне нужно?
javascript
functional-programming
immutable.js
Сигизмунда
источник
источник
map
предполагается сохранить структуру массива, то есть должны преобразовываться только его значения, а не сам массив.Ответы:
Вы сможете получить текущую итерацию
index
дляmap
метода через его второй параметр.Пример:
Вывод:
Смотрите также: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
источник
map
Операция используется для создания нового массива путем перебора элементов данного массива. Чтобы ответить на ваш вопрос, да, требуется оператор возврата, и для этого случая он возвращает значение «X» на каждой итерации. Таким образом, конечный продукт кода будет[ 'X', 'X','X','X' ]
'X'
- это строка.Array.prototype.map()
индекс:Доступ к индексу можно получить
Array.prototype.map()
через второй аргумент функции обратного вызова. Вот пример:Другие аргументы
Array.prototype.map()
:Array.map()
- это объект, который будетthis
значением для функции обратного вызова. Имейте в виду, что вы должны использовать обычноеfunction
ключевое слово для объявления обратного вызова, так как функция стрелки не имеет собственной привязки кthis
ключевому слову.Например:
источник
Используя Рамду:
источник