Eu estou faltando uma opção de como obter o número de índice dentro da map
função utilizando List
a partir Immutable.js
:
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
A documentação mostra que map()
retorna Iterable<number, M>
. Existe alguma maneira elegante de o que eu preciso?
javascript
functional-programming
immutable.js
Zygimantas
fonte
fonte
map
deve preservar a estrutura da matriz, apenas seus valores devem ser transformados, e não a matriz em si.Respostas:
Você poderá obter as iterações atuais
index
domap
método através do seu 2º parâmetro.Exemplo:
Resultado:
Veja também: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
fonte
map
operação é usada para construir uma nova matriz, iterando pelos elementos de uma determinada matriz. Para responder sua pergunta, sim, é necessária uma declaração de retorno e, nesse caso, ele está retornando o valor 'X' em cada iteração. Assim, o produto final do código será[ 'X', 'X','X','X' ]
'X'
é uma string.Array.prototype.map()
índice:Pode-se acessar o índice
Array.prototype.map()
através do segundo argumento da função de retorno de chamada. Aqui está um exemplo:Outros argumentos de
Array.prototype.map()
:Array.map()
é um objeto que será othis
valor da função de retorno de chamada. Lembre-se de que você deve usar a palavra-chave regularfunction
para declarar o retorno de chamada, pois uma função de seta não possui sua própria ligação àthis
palavra - chave.Por exemplo:
fonte
Usando o Ramda:
fonte