Map մեթոդը

map մեթոդը թույլ է տալիս կիրառել տրված ֆունկցիան զանգվածի յուրաքանչյուր տարրի համար: Միաժամանակ մեթոդը չի փոխում սկզբնական զանգվածը, այլ վերադարձնում է փոփոխվածը:

Մեթոդը պարամետրում ստանում է ֆունկցիա, որն կկատարվի զանգվածի յուրաքանչյուր տարրի համար: Այն, ինչ այդ ֆունկցիան կվերադարձնի return-ի միջոցով զանգվածի տարրի համար, կդառնա այդ տարրի նոր արժեքը (տես օրինակները):

Ֆունկցիային կարելի է փոխանցել 3 պարամետր: Եթե այդ պարամետրերը կան (դրանք պարտադիր չեն), ապա առաջինի մեջ ավտոմատ կընկնի զանգվածի տարրը, երկրորդի մեջ կընկնի դրա համարը զանգվածում (ինդեքսը), իսկ երրորդի մեջ՝ հենց զանգվածը:

Շարահյուսություն

javascriptlet նոր զանգված = զանգված.map(function(տարր, ինդեքս, զանգված) {
  կոդ
  return փոփոխված տարր;
});

Օրինակ

Ստեղծենք զանգված, որի յուրաքանչյուր տարրը երկու անգամ մեծ է սկզբնական զանգվածի համապատասխան տարրից:

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

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

console.log(res);

Կոդի կատարման արդյունքը:

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

Օրինակ

Ստեղծենք զանգված, որի յուրաքանչյուր տարրը ստացվում է այսպես - տարրի արժեքը բազմապատկվում է նրա հերթական համարով զանգվածում:

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

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

console.log(res);

Կոդի կատարման արդյունքը:

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

Օրինակ

Անհրաժեշտության դեպքում երրորդ պարամետրին կարելի է փոխանցել հենց զանգվածը:

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

let res = arr.map(function(elem, index, arr) {
  այստեղ հասանելի կլինի arr զանգվածը
});

Օրինակ

map մեթոդը կարելի է օգտագործել նաև բազմաչափ զանգվածների անցման համար: Ենթադրենք, օրինակ, տրված է այսպիսի զանգված:

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

Եկեք անցնենք այս զանգվածը map-ի միջոցով և դուրս բերենք նրա տարրերը կոնսոլում:

javascriptlet 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 մեթոդը յուրաքանչյուր ենթազանգվածի նկատմամբ և յուրաքանչյուր տարր քառակուսի բարձրացնենք:

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

Տես նաև

  • forEach մեթոդը,
    որը կիրառում է ֆունկցիան զանգվածի յուրաքանչյուր տարրի համար
  • filter մեթոդը,
    որը թույլ է տալիս ֆիլտրել զանգվածի տարրերը
  • some և every մեթոդները,
    որոնք կատարում են զանգվածի ստուգում
  • reduce և reduceRight մեթոդները,
    որոնք ծալում են զանգվածը մեկ արժեքի