Metode map

Die metode map laat jou toe om 'n gegewe funksie op elke element van 'n skikking toe te pas. Die metode verander nie die oorspronklike skikking nie, maar gee 'n gewysigde skikking terug.

Die metode ontvang 'n funksie as parameter, wat vir elke element van die skikking uitgevoer sal word. Wat hierdie funksie via return vir die skikkings-element teruggee, sal die nuwe waarde van daardie element word (sien voorbeelde).

Jy kan 3 parameters aan die funksie oordra. As hierdie parameters bestaan (hulle is nie verpligtend nie), dan sal die eerste outomaties die element van die skikking ontvang, die tweede sal sy posisie in die skikking (indeks) ontvang, en die derde - die skikking self.

Sintaksis

javascriptlet nuwe skikking = skikking.map(function(element, indeks, skikking) {
  kode
  return gewysigde element;
});

Voorbeeld

Kom ons skep 'n skikking waar elke element twee keer die ooreenstemmende element van die oorspronklike skikking is:

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

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

console.log(res);

Resultaat van die kode-uitvoering:

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

Voorbeeld

Kom ons skep 'n skikking waar elke element so verkry word - die waarde van die element word vermenigvuldig met sy volgorde in die skikking:

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

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

console.log(res);

Resultaat van die kode-uitvoering:

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

Voorbeeld

Indien nodig kan die skikking self aan die derde parameter oorgedra word:

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

let res = arr.map(function(elem, index, arr) {
  // die skikking arr sal hier beskikbaar wees
});

Voorbeeld

Die metode map kan ook gebruik word vir die deurloping van multidimensionele skikkings. Byvoorbeeld, gegee die volgende skikking:

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

Kom ons deurloop hierdie skikking met map en druk sy elemente in die konsole uit:

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

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

As gevolg sal console.log eers [1, 2, 3] uitdruk, dan [4, 5, 6], dan [7, 8, 9].

Soos jy kan sien, beland die subskikkings in die veranderlike elem. Kom ons pas nou die metode map op elke subskikking toe en verhef elke element daarvan tot die kwadraat:

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);

Sien ook

  • die metode forEach,
    wat 'n funksie op elke element van 'n skikking toepas
  • die metode filter,
    wat toelaat om elemente van 'n skikking te filter
  • die metodes some en every,
    wat toetsing op 'n skikking uitvoer
  • die metodes reduce en reduceRight,
    wat 'n skikking tot een waarde reduseer