Metoden map

Metoden map tillader at anvende en given funktion for hvert element i et array. Metoden ændrer ikke det oprindelige array, men returnerer et modificeret et.

Metoden modtager en funktion som parameter, som vil blive udført for hvert element i arrayet. Hvad denne funktion returnerer via return for arrayelementet, vil blive elementets nye værdi (se eksempler).

Man kan overføre 3 parametre til funktionen. Hvis disse parametre er til stede (de er ikke obligatoriske), så vil den første automatisk modtage elementet fra arrayet, den anden vil modtage dets nummer i arrayet (index), og den tredje - selve arrayet.

Syntaks

javascriptlet nytArray = array.map(function(element, index, array) {
  kode
  return modificeret element;
});

Eksempel

Lad os oprette et array, hvor hvert element er dobbelt så stort som det tilsvarende element i startarrayet:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem) {
  return elem * 2;
});

console.log(res);

Resultatet af udførelsen af koden:

javascript[2, 4, 6, 8, 10]

Eksempel

Lad os oprette et array, hvor hvert element opnås sådan her - elementets værdi ganges med dets ordningsnummer i arrayet:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, index) {
  return elem * index;
});

console.log(res);

Resultatet af udførelsen af koden:

javascript[0, 2, 6, 12, 20]

Eksempel

Hvis nødvendigt, kan selve arrayet overføres som den tredje parameter:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, index, arr) {
  // her vil arrayet arr være tilgængeligt
});

Eksempel

Metoden map kan også bruges til at gennemgå multidimensionelle arrays. Lad os for eksempel sige, at vi har følgende array:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

Lad os gennemgå dette array med map og udskrive dets elementer til konsollen:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

let result = arr.map(function(elem) {
  console.log(elem);
});

Som et resultat vil console.log udskrive [1, 2, 3], derefter [4, 5, 6], og derefter [7, 8, 9].

Som du kan se, er det underarrays, der går ind i variablen elem. Lad os nu anvende metoden map på hvert underarray og opløfte hvert dets element i anden potens:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

let result = arr.map(function(elem) {
  return elem.map(function(num) {
    return num * num;
  });
});

console.log(result);

Se også

  • metoden forEach,
    som anvender en funktion for hvert element i arrayet
  • metoden filter,
    som tillader at filtrere elementer i et array
  • metoderne some og every,
    der udfører kontrol af et array
  • metoderne reduce og reduceRight,
    der reducerer et array til en enkelt værdi