103 of 264 menu

Метод map

Методът map позволява да се приложи зададена функция за всеки елемент от масив. При това методът не променя оригиналния масив, а връща променен.

Методът в параметър получава функция, която ще се изпълни за всеки елемент от масива. Това, което функцията върне чрез return за елемента от масива, ще стане новата стойност на този елемент (виж примерите).

Във функцията могат да се предават 3 параметъра. Ако тези параметри съществуват (те не са задължителни), тогава в първия автоматично ще попадне елементът от масива, във втория ще попадне неговият номер в масива (индекс), а в третия - самият масив.

Синтаксис

let нов масив = масив.map(function(елемент, индекс, масив) { код return променен елемент; });

Пример

Нека създадем масив, всеки елемент от който е два пъти по-голям от съответния елемент от началния масив:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem) { return elem * 2; }); console.log(res);

Резултат от изпълнението на кода:

[2, 4, 6, 8, 10]

Пример

Нека създадем масив, всеки елемент от който се получава така - стойността на елемента се умножава по неговия пореден номер в масива:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index) { return elem * index; }); console.log(res);

Резултат от изпълнението на кода:

[0, 2, 6, 12, 20]

Пример

При необходимост в третия параметър може да се подаде самият масив:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index, arr) { // тук ще бъде достъпен масивът arr });

Пример

Методът map може да се използва и за обхождане на многомерни масиви. Нека, например, е даден следният масив:

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

Нека да обходим този масив чрез map и да изведем неговите елементи в конзолата:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) { console.log(elem); });

В резултат console.log ще изведе [1, 2, 3], след това [4, 5, 6], след това [7, 8, 9].

Както виждате, в променливата elem попадат подмасивите. Нека сега приложим метода map към всеки подмасив и повдигнем всеки негов елемент на квадрат:

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

Вижте също

  • метод forEach,
    който прилага функция за всеки елемент от масив
  • метод filter,
    който позволява филтриране на елементи от масив
  • методи some и every,
    извършващи проверка на масив
  • методи reduce и reduceRight,
    свиващи масив към една стойност
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне