FlatMap әдісі
flatMap әдісі
бастапқы массивтің әрбір элементіне
әдіс параметрінде көрсетілген коллбэк
қолданылғаннан кейін жасалған
жаңа массивті қайтарады.
Бірінші көзқараста flatMap әдісі
map әдісіне ұқсас, бірақ оның басты айырмашылығы
әрқашан бір өлшемді массив қайтаруында.
Синтаксис
let newArray = массив.flatMap(функция);
Мысал
flatMap әдісін қолданып,
жаңа массив алайық:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Код орындалу нәтижесі:
['a!', 'b!', 'c!']
Мысал
Сандардан тұратын бастапқы массивтен жаңа массив алайық:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Код орындалу нәтижесі:
[3, 4, 5, 6, 7]
Мысал
flatMap әдісін бірінші
кірістіру деңгейі бар массивке қолданып көрейік:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Кодты орындағаннан кейін функция шарттары ішкі массивке бір элемент ретінде есептеліп қолданылғанын көреміз. Сондықтан бұл әдісті кірістірілген массивтерде шақырудың мағынасы жоқ:
[3, 4, 5, '4,52']
Мысал
Егер біз кірістіру деңгейімен айналысқымыз келмесе,
бірақ бүкіл массивті біріктіргіміз келсе, Infinity параметрін қолданамыз:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Код орындалу нәтижесі:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Мысал
Массивке екі әдісті қолданайық:
flatMap және map, сонымен қатар екі әдістің параметрінде де
массивті екі өлшемді ететін функция көрсетіледі:
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 әдісі', res1);
console.log('flatMap әдісі', res2);
Код орындалу нәтижесі:
'map әдісі' [[3], [6], [9], [12], [15], [18]]
'flatMap әдісі' [3, 6, 9, 12, 15, 18]
Сондай-ақ қараңыз
-
flatәдісі,
ішкі массивтерден массив қайтарады