Map методи

map методи массивнинг ҳар бир элементи учун белгиланган функцини қўллаш имконини беради. Бу методи асл массивни ўзгартирмай, ўзгартирилган массивни қайтаради.

Метод параметр сифатида массивнинг ҳар бир элементи учун бажариладиган функцини олади. Ушбу функция return орқали массив элементи учун қайтарган нарса, ўша элементнинг янги қиймати бўлади (мисолларни кўринг).

Функцияга 3 параметр бериш мумкин. Aгар бу параметрлар мавжуд бўлса (улар majburiy emas), биринчига avtomatik ravishda массив элементи, иккинчига унинг массивдаги номери (индекс), учинчига эса массивнинг ўзи тушади.

Синтаксис

javascriptlet yangi massiv = massiv.map(function(element, index, massiv) {
  kod
  return o'zgartirilgan element;
});

Мисол

Ҳар бир элементи бошланғич массивнинг мос элементидан икки баробар катта бўлган массив яратамиз:

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 методини кўп ўлчовли массивларни aйлаш учун ҳам қўллаш мумкин. Масалан, бизга буйондaг массив берилган бўлсин:

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

Келинг, бу массивни map орқали aйлаб, унинг элементларини консольга чиқарамиз:

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] ни чиқаради.

Кўриб turganingizdek, 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 методлари,
    массивни битта қийматга қискаради