Metoden map

Metoden map lar deg bruke en gitt funksjon for hvert element i arrayet. Metoden endrer ikke den opprinnelige arrayen, men returnerer en modifisert en.

Metoden mottar i parameteren en funksjon som vil kjøres for hvert element i arrayet. Det som returneres fra denne funksjonen via return for arrayelementet, vil bli den nye verdien til dette elementet (se eksempler).

Man kan sende 3 parametere til funksjonen. Hvis disse parameterne er til stede (de er ikke obligatoriske), vil den første automatisk få arrayelementet, den vil andre få dens nummer i arrayet (indeksen), og den tredje - selve arrayet.

Syntaks

javascriptlet nyArray = array.map(function(element, indeks, array) {
  kode
  return modifisert element;
});

Eksempel

La oss opprette en array der hvert element er dobbelt så stort som det tilsvarende elementet i startarrayen:

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

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

console.log(res);

Resultatet av kjøring av koden:

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

Eksempel

La oss opprette en array der hvert element oppnås slik - elementets verdi multipliseres med dens ordensnummer i arrayet:

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

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

console.log(res);

Resultatet av kjøring av koden:

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

Eksempel

Ved behov kan man i den tredje parameteren sende selve arrayet:

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

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

Eksempel

Metoden map kan også brukes til å gå gjennom flerdimensjonale arrays. La oss for eksempel anta at vi har følgende array:

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

La oss gå gjennom denne arrayen med map og skrive ut elementene i 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 skrive ut [1, 2, 3], deretter [4, 5, 6], deretter [7, 8, 9].

Som du ser, havner underarrayene i variabelen elem. La oss nå bruke metoden map på hvert underarray og kvadrere hvert av dets elementer:

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 bruker en funksjon for hvert element i arrayet
  • metoden filter,
    som lar deg filtrere elementer i arrayet
  • metodene some og every,
    som utfører sjekk av arrayet
  • metodene reduce og reduceRight,
    som folder arrayet til en enkelt verdi