Brakuje mi opcji jak uzyskać numer indeksu wewnątrz map
funkcji przy użyciu List
od Immutable.js
:
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
Dokumentacja pokazuje, że map()
zwraca Iterable<number, M>
. Czy jest jakiś elegancki sposób na to, czego potrzebuję?
javascript
functional-programming
immutable.js
Zygimantas
źródło
źródło
map
ma to na celu zachowanie struktury tablicy, to tylko jej wartości powinny zostać przekształcone, a nie sama tablica.Odpowiedzi:
Będziesz mógł uzyskać bieżącą iterację
index
dlamap
metody poprzez jej drugi parametr.Przykład:
Wynik:
Zobacz także: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
źródło
map
Operacja służy do konstruowania nowej tablicy przez iterację elementów danej tablicy. Aby odpowiedzieć na twoje pytanie, tak, wymagana jest instrukcja return, aw tym przypadku zwraca wartość „X” przy każdej iteracji. Tak więc końcowym produktem kodu będzie[ 'X', 'X','X','X' ]
'X'
to ciąg.Array.prototype.map()
indeks:Dostęp do indeksu można uzyskać
Array.prototype.map()
za pomocą drugiego argumentu funkcji zwrotnej. Oto przykład:Inne argumenty
Array.prototype.map()
:Array.map()
jest obiekt, który będziethis
wartością funkcji wywołania zwrotnego. Pamiętaj, że musisz użyć zwykłegofunction
słowa kluczowego , aby zadeklarować wywołanie zwrotne, ponieważ funkcja strzałki nie ma własnego wiązania zethis
słowem kluczowym.Na przykład:
źródło
Za pomocą Ramda:
źródło