Array.prototype.flatMap() সে মেইন Array পরিবর্তন করে না , এ পদ্ধতি টি অ্যারের প্রতিটি উপাদান গুলো কে প্রদত্ত কলব্যাক ফাংশন প্রয়োগ করে এবং তারপরে ফলাফল টা কে এক স্তর দ্বারা সমতল করে একটি নতুন অ্যারে গঠন করে ।
flatMap() মূলত map() কে flat() করে । অর্থাৎ map() কে যখন flat() করতে হয় তখন আমরা flatMap() ইউজ করি। নিচের পর্যাক্রমে দু’একটা উদাহরণ বিশ্লেষণ করলেই আমরা flatMap() কি এবং flatMap() কিভাবে কাজ করে তা বুঝে যাব ।
Example 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var arr = [1, 2, 3, 4]; var vv1 = arr.map(x => [x * 3]); var vv2 = arr.flatMap(x => [x * 2]); var vv3 = arr.flatMap(x => [x+'x', x * 2]); console.log(vv1); console.log(vv2); console.log(vv3); Answer: [ [ 3 ], [ 6 ], [ 9 ], [ 12 ] ] [ 2, 4, 6, 8 ] [ '1x', 2, '2x', 4, '3x', 6, '4x', 8 ] |
Example 1 এ * vv1 এ arr কে map করে যে রেজাল্ট পেয়েছি তা কিছুই এর সমন্বয়, * vv2/vv3 এ arr কে flatMap করে কিন্তু একটি একক array পেয়েছি ,
Example 2
1 2 3 4 5 6 7 8 9 10 11 12 13 |
let arr1 = ["it's Sunny in", "", "California"]; var arr01 = arr1.map(x => x.split(" ")); console.log(arr01); var arr02 = arr1.flatMap(x => x.split(" ")); console.log(arr02); Answer: [ [ "it's", 'Sunny', 'in' ], [ '' ], [ 'California' ] ] [ "it's", 'Sunny', 'in', '', 'California' ] |
Example 2 এই উদাহরণটা লক্ষ করলে দেখা যাবে যে এখানে map() করে আর flatMap() করে যে ফলাফল দুটোর পেয়েছি তাঁর মধ্যে পার্থক্য আছে, যেটা flatMap() করেছি সেখানে একটী Array আর map() করে যে ফলাফল পেয়েছি সেখানে এখাদিক Array সমন্ন্য্যে একটি Array সেট পেয়েছি ।
Example 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
var exapm = ["everyone like","javaScript","as programming language"]; exapm1 = exapm.flat((element)=>{ return element.split(" "); }); exapm2 = exapm.map((element)=>{ return element.split(" "); }); exapm3 = exapm.map((element)=>{ return element.split(" "); }).flat(); // flat & map = flatMap , so no need map & flat deferent way exapm4 = exapm.flatMap((element)=>{ return element.split(" "); }); console.log(exapm1); console.log(exapm2); console.log(exapm3); console.log(exapm4); Answer: [ 'everyone like', 'javaScript', 'as programming language' ] [ [ 'everyone', 'like' ], [ 'javaScript' ], [ 'as', 'programming', 'language' ] ] [ 'everyone', 'like', 'javaScript', 'as', 'programming', 'language' ] [ 'everyone', 'like', 'javaScript', 'as', 'programming', 'language' ] |
Example 3 এর এখানে প্রথমে
=> exapm2 তে map() করেছি এবং যে ফলাফল পেয়েছি তা লক্ষ্য করো ,
=> exapm3 তে map() করেছি ও তার পর একে flat() এবং যে ফলাফল পেয়েছি তা লক্ষ্য করো ,
=> exapm4 তে flatMap() করেছি এবং যে ফলাফল পেয়েছি তা লক্ষ্য করো ,
=> exapm2 map() = ফলাফল সাধারন
=> exapm3 map() + flat() = ফলাফল সাধারন নায় বরং flat() করা হয়েছে
=> exapm4 map() + flat() =flatMap() = ফলাফল Exapm3 এর মতই । সুতরাং এটা হল Exapm3 এর সংক্ষিপ্ত রূপ এর মতই কাজ করে।
আর Example 4 ও এখই ঘটনা ।
Example 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
const someArray = ["kibria", "jishan"] someArray1 = someArray.flat((items)=>{ return items.split(""); }); someArray2 = someArray.map((items)=>{ return items.split(""); }); someArray3 = someArray.flatMap((items)=>{ return items.split(""); }); console.log(someArray1); console.log(someArray2); console.log(someArray3); Answer: [ 'kibria', 'jishan' ] [ [ 'k', 'i', 'b', 'r', 'i', 'a' ], [ 'j', 'i', 's', 'h', 'a', 'n' ] ] [ 'k', 'i', 'b', 'r', 'i', 'a', 'j', 'i', 's', 'h', 'a', 'n' ] |