Índice dentro de la función map()
Me falta una opción sobre cómo obtener el número de índice dentro de la map
función usando List
from Immutable.js
:
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
La documentación muestra que map()
regresa Iterable<number, M>
. ¿Existe alguna forma elegante de llegar a lo que necesito?
Podrá obtener las iteraciones actuales index
del map
método a través de su segundo parámetro.
Ejemplo:
const list = [ 'h', 'e', 'l', 'l', 'o'];
list.map((currElement, index) => {
console.log("The current iteration is: " + index);
console.log("The current element is: " + currElement);
console.log("\n");
return currElement; //equivalent to list[index]
});
Producción:
The current iteration is: 0 <br>The current element is: h
The current iteration is: 1 <br>The current element is: e
The current iteration is: 2 <br>The current element is: l
The current iteration is: 3 <br>The current element is: l
The current iteration is: 4 <br>The current element is: o
Ver también: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Parámetros
callback: función que produce un elemento del nuevo Array, tomando tres argumentos:
1) currentValue
El elemento actual que se procesa en la matriz.2) índice
El índice del elemento actual que se está procesando en la matriz.3) matriz
Se invocó el mapa de matriz.
Array.prototype.map()
índice:
Se puede acceder al índice Array.prototype.map()
a través del segundo argumento de la función de devolución de llamada. Aquí hay un ejemplo:
const array = [1, 2, 3, 4];
const map = array.map((x, index) => {
console.log(index);
return x + index;
});
console.log(map);
Otros argumentos de Array.prototype.map()
:
- El tercer argumento de la función de devolución de llamada expone la matriz en la que se invocó el mapa.
- El segundo argumento de
Array.map()
es un objeto que será elthis
valor de la función de devolución de llamada. Tenga en cuenta que debe utilizar la palabra clave normalfunction
para declarar la devolución de llamada, ya que una función de flecha no tiene su propio enlace a lathis
palabra clave.
Por ejemplo:
const array = [1, 2, 3, 4];
const thisObj = { prop1: 1 }
const map = array.map((x, index, array) => {
console.log(array);
console.log(this)
}, thisObj);