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