АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
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,
    якія згортваюць масіў да аднаго значэння
byenru