Índice dentro de la función map()

Resuelto Zygimantas asked hace 8 años • 4 respuestas

Me falta una opción sobre cómo obtener el número de índice dentro de la mapfunción usando Listfrom 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?

Zygimantas avatar Jul 14 '16 09:07 Zygimantas
Aceptado

Podrá obtener las iteraciones actuales indexdel mapmé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.

Samuel Toh avatar Jul 14 '2016 02:07 Samuel Toh

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);
Expandir fragmento

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á el thisvalor 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 la thispalabra 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);
Expandir fragmento

Willem van der Veen avatar Oct 29 '2018 18:10 Willem van der Veen