Njia ya flatMap
Njia flatMap inarudisha
safu mpya, iliyoundwa baada ya
kila kipengee cha safu asili
kutumia kolibek,
iliyoonyeshwa kwenye kigezo cha njia.
Kwa mtazamo wa kwanza njia flatMap
inafanana na njia map, lakini tofauti yake kuu
ni kwamba hurudisha safu ya mwelekeo mmoja kila wakati.
Sintaksia
let newArray = safu.flatMap(kazi);
Mfano
Wacha tupate safu mpya,
tukitumia njia flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Matokeo ya utekelezaji wa kodi:
['a!', 'b!', 'c!']
Mfano
Wacha tupate safu mpya kutoka kwa safu asili, inayojumuisha nambari:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Matokeo ya utekelezaji wa kodi:
[3, 4, 5, 6, 7]
Mfano
Wacha tujaribu kutumia njia
flatMap kwa safu iliyo na
kiwango cha kwanza cha kuingizwa:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Baada ya utekelezaji wa kodi tutaona kwamba masharti ya kazi yalitumika kwa safu-ndogo, ikiichukulia kama kipengee kimoja. Kwa hivyo mwito wa njia hii kwenye safu zilizowekwa haina maana:
[3, 4, 5, '4,52']
Mfano
Kama hatutaki kujishughulisha na kiwango cha kuingizwa,
bali tuunganishe safu yote, basi tunatumia kigezo Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Matokeo ya utekelezaji wa kodi:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Mfano
Wacha tutumie njia mbili kwa safu:
flatMap na map, ambapo kwenye kigezo cha njia zote mbili
itatajwa kazi, inayofanya safu kuwa ya mwelekeo mbili:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('njia map', res1);
console.log('njia flatMap', res2);
Matokeo ya utekelezaji wa kodi:
'njia map' [[3], [6], [9], [12], [15], [18]]
'njia flatMap' [3, 6, 9, 12, 15, 18]
Angalia pia
-
njia
flat,
ambayo inarudisha safu kutoka kwa safu-ndogo