flatMap usuli
flatMap usuli
asl massivning har bir elementiga
usul parametrida ko‘rsatilgan qayta chaqiruv
qo‘llangandan keyin yaratilgan
yangi massivni qaytaradi.
Ilk qarashda flatMap usuli
map usuliga o‘xshaydi, lekin uning asosiy farqi
har doim bir o‘lchamli massiv qaytarishidir.
Sintaksis
let newArray = massiv.flatMap(funktsiya);
Misol
Keling, flatMap usulidan foydalanib,
yangi massiv olamiz:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Kodni bajarish natijasi:
['a!', 'b!', 'c!']
Misol
Keling, raqamlardan tashkil topgan asl massivdan yangi massiv olamiz:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Kodni bajarish natijasi:
[3, 4, 5, 6, 7]
Misol
Keling, birinchi ichki kiritilish darajasiga ega
massivga flatMap usulini qo‘llashga harakat qilaylik:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Kod bajarilgandan so‘ng biz funktsiya shartlari ichki massivga uni bitta element hisoblab qo‘llanganini ko‘ramiz. Shuning uchun bu usulni chaqirish ichki kiritilgan massivlarda mohiyati yo‘q:
[3, 4, 5, '4,52']
Misol
Agar biz ichki kiritilish darajasi bilan mashq qilishni istamasak,
hamda butun massivni birlashtirmoqchi bo‘lsak, Infinity parametridan foydalanamiz:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Kodni bajarish natijasi:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Misol
Keling, massivga ikkita usulni qo‘llaymiz:
flatMap va map, hamda ikkala usul parametrida ham
massivni ikki o‘lchamli qiladigan funktsiya ko‘rsatilgan bo‘ladi:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('map usuli', res1);
console.log('flatMap usuli', res2);
Kodni bajarish natijasi:
'map usuli' [[3], [6], [9], [12], [15], [18]]
'flatMap usuli' [3, 6, 9, 12, 15, 18]
Shuningdek qarang
-
flatusuli,
bu ichki massivlardan massiv qaytaradi