una - map javascript
Índice dentro de la función map() (3)
Índice
Array.prototype.map()
:
Se puede acceder al índice
Array.prototype.map()
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 thisObj = {prop1: 1}
const map = array.map( function (x, index, array) {
console.log(array);
console.log(this)
}, thisObj);
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áthis
valor para la función de devolución de llamada. Tenga en cuenta que debe usar la palabra clave defunction
regular para declarar la devolución de llamada ya que una función de flecha no tiene su propio enlace athis
palabra clave.
Por ejemplo:
import {addIndex, map} from ''ramda'';
const list = [ ''h'', ''e'', ''l'', ''l'', ''o''];
const mapIndexed = addIndex(map);
mapIndexed((currElement, index) => {
console.log("The current iteration is: " + index);
console.log("The current element is: " + currElement);
console.log("/n");
return ''X'';
}, list);
Me falta una opción para obtener el número de índice dentro de la función de
map
usando
List
from
Immutable.js
:
var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList();
La documentación muestra
que
map()
devuelve
Iterable<number, M>
.
¿Hay alguna forma elegante de lo que necesito?
Podrá obtener el
index
de la iteración actual para el método de
map
través de su segundo parámetro.
Ejemplo:
var 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 ''X'';
});
Salida:
const array = [1, 2, 3, 4];
const map = array.map((x, index) => {
console.log(index);
return x + index;
});
console.log(map);
Ver también: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Parámetros
devolución de llamada: función que produce un elemento de la nueva matriz, tomando tres argumentos:
1) valor actual
El elemento actual que se procesa en la matriz.2) índice
El índice del elemento actual que se procesa en la matriz.3) matriz
Se solicitó el mapa de matriz.
Usando Ramda:
import {addIndex, map} from ''ramda''; const list = [ ''h'', ''e'', ''l'', ''l'', ''o'']; const mapIndexed = addIndex(map); mapIndexed((currElement, index) => { console.log("The current iteration is: " + index); console.log("The current element is: " + currElement); console.log("/n"); return ''X''; }, list);