flatMap ක්රමය
flatMap ක්රමය
නව අරාවක් ආපසු ලබා දෙයි,
මුල් අරාවේ එක් එක් මූලද්රව්යයට
ක්රමයේ පරාමිතියේ දක්වා ඇති callback,
යෙදීමෙන් පසුව එය නිර්මාණය වේ.
පළමු බැල්මට flatMap ක්රමය
map ක්රමයට සමාන බව පෙනේ, නමුත් එහි ප්රධාන වෙනස
එය සැමවිටම තනි මාන අරාවක් ආපසු ලබා දීමයි.
වාක්ය රීතිය
let newArray = array.flatMap(function);
උදාහරණය
අපි 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ක්රමය,
යමුපඅරා වලින් අරාවක් ආපසු ලබා දෙයි