JavaScript Mappatura dei valori

Esempio

Spesso è necessario generare un nuovo array in base ai valori di un array esistente.

Ad esempio, per generare una serie di lunghezze di stringa da una matrice di stringhe:

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]

In questo esempio, viene fornita una funzione anonima alla funzione map() e la funzione map la chiamerà per ogni elemento dell'array, fornendo i seguenti parametri, in questo ordine:

  • L'elemento stesso
  • L'indice dell'elemento (0, 1 ...)
  • L'intero array

Inoltre, map() fornisce un secondo parametro opzionale per impostare il valore di this nella funzione di mappatura. A seconda dell'ambiente di esecuzione, il valore predefinito di this potrebbe variare:

In un browser, il valore predefinito di this è sempre la window :

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

Puoi cambiarlo in qualsiasi oggetto personalizzato come questo:

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