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