Mbinu ya map
Mbinu map inaruhusu kutumia kitendakazi kilichobainishwa
kwa kila kipengele cha safu (array). Wakati
huo, mbinu haibadili safu asilia, bali
inawarudisha ile iliyobadilika.
Mbinu hupokea kitendakazi kwenye kigezo, ambacho
kitatekelezwa kwa kila kipengele cha safu (array).
Kile kitakachorudishwa na kitendakazi hicho kupitia return
kwa kipengele cha safu, kitakuwa thamani mpya
ya kipengele hicho (angalia mifano).
Kwa kitendakazi kunaweza kupitishwa 3 vigezo.
Ikiwa vigezo hivi vipo (sio lazima),
basi kwa kigezo cha kwanza kitaingia moja kwa moja kipengele
cha safu, kwa cha pili kitaingia nambari yake kwenye safu
(index), na kwa cha tatu - safu yenyewe.
Syntax
let safu_mpya = safu.map(function(kipengele, index, safu) {
code
return kipengele_kilibadilika;
});
Mfano
Wacha tuunde safu, ambapo kila kipengele chake kina ukubwa mara mbili ya kipengele sambamba cha safu ya mwanzo:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Matokeo ya utekelezaji wa code:
[2, 4, 6, 8, 10]
Mfano
Wacha tuunde safu, ambapo kila kipengele chake kinapatikana kama ifuatavyo - thamani ya kipengele inazidishwa kwa nambari yake ya mlolongo kwenye safu:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Matokeo ya utekelezaji wa code:
[0, 2, 6, 12, 20]
Mfano
Ikiwa ni lazima, kwa kigezo cha tatu kunaweza kupitishwa safu yenyewe:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
hapa safu arr itapatikana
});
Mfano
Mbinu map inaweza kutumika pia kwa
kupitia safu zenye tabaka nyingi (multidimensional arrays). Hebu, kwa mfano,
iwe kuna safu kama hii:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Wacha tupitie safu hii kupitia
map na tuonyeshe viperengele vyake kwenye konsole:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Kama matokeo console.log itaonyesha [1,
2, 3], kisha [4, 5, 6], kisha
[7, 8, 9].
Kama unavyoona, kwenye variable elem huingia
safu ndogo (subarrays). Sasa wacha tutumie mbinu
map kwa kila safu ndogo na tuinue
kila kipengele chake kwa mraba:
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);