Методот map
Методот map овозможува да се примени зададената
функција за секој елемент од низата. При
тоа методот не ја менува оригиналната низа, туку
ја враќа променетата.
Методот како параметар ја добива функцијата која
ќе се изврши за секој елемент од низата.
Она што ќе го врати оваа функција преку return
за елементот од низата, ќе стане нова вредност
на тој елемент (вид. примери).
Во функцијата може да се пренесат 3 параметри.
Ако овие параметри постојат (тие не се задолжителни),
тогаш во првиот автоматски ќе влезе елементот
од низата, во вториот ќе влезе неговиот број во низата
(индекс), а во третиот - самата низа.
Синтакса
let nova niza = niza.map(function(element, index, niza) {
kod
return promenet element;
});
Пример
Да креираме низа, каде што секој елемент е двојно поголем од соодветниот елемент на почетната низа:
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) {
ovde ke bide dostapna nizata 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);