JavaScript Mapeo de valores


Ejemplo

A menudo es necesario generar una nueva matriz basada en los valores de una matriz existente.

Por ejemplo, para generar una matriz de longitudes de cadena a partir de una matriz de cadenas:

5.1
['one', 'two', 'three', 'four'].map(function(value, index, arr) {
  return value.length;
});
// → [3, 3, 5, 4]
6
['one', 'two', 'three', 'four'].map(value => value.length);
// → [3, 3, 5, 4]

En este ejemplo, se proporciona una función anónima a la función map() , y la función map la llamará para cada elemento de la matriz, proporcionando los siguientes parámetros, en este orden:

  • El elemento en si
  • El índice del elemento (0, 1 ...)
  • Toda la matriz

Además, map() proporciona un segundo parámetro opcional para establecer el valor de this en la función de mapeo. Dependiendo del entorno de ejecución, el valor predeterminado de this puede variar:

En un navegador, el valor predeterminado de this es siempre window :

['one', 'two'].map(function(value, index, arr) {
  console.log(this); // window (the default value in browsers)
  return value.length;
});

Puedes cambiarlo a cualquier objeto personalizado como este:

['one', 'two'].map(function(value, index, arr) {
  console.log(this); // Object { documentation: "randomObject" }
  return value.length;
}, {
  documentation: 'randomObject'
});