8.19 Array.flat() and Array.flatMap()
Array.flat()
Javascript এ একটি array যেকোন depth এ formed হতে পারে।
যেমন –
const array1 = [0, 1, 2, 3, 4, [5, 6]; const array2 = [0, 1, 2, 3, 4, [[[5, 6]]]];
এই depth কে reduce করার জন্য Array.flat() use কর এর মাধ্যমে একটি নতুন array return করা হয়।
Syntax :
array_name.flat()
array_name.flat(depth)
এখানে depth টি optional এবং depth দিয়ে আমরা array টি depth value কত set করতে চাচ্ছি, তা বোঝানো হয়। এর default value হচ্ছে 1.
Example :
const array1 = [0, 1, 2, 3, 4, [5, 6]]; const array2 = [0, 1, 2, 3, 4, [[[[5, 6]]]]]; const array3 = [0, 1, 2, [[[3, 4]]], [[[[5, 6]]]]]; console.log(array1.flat()); // (7) [0, 1, 2, 3, 4, 5, 6] // 0: 0 // 1: 1 // 2: 2 // 3: 3 // 4: 4 // 5: 5 // 6: 6 // length: 7 console.log(array2.flat(3)); // 0: 0 // 1: 1 // 2: 2 // 3: 3 // 4: 4 // 5: (2) [5, 6] // length: 6 // [[Prototype]]: Array(0) console.log(array3.flat(2)); (5)[(0, 1, 2, Array(2), Array(1))]; // 0: 0 // 1: 1 // 2: 2 // 3: (2) [3, 4] // 4: [Array(2)] // length: 5
Array.flatMap()
Array.flatMap() হচ্ছে এমন একটি method যা flat & map এই দুটো method এর সমন্বয়ে গঠিত। এই method টি একটি callback function এর মাধ্যমে array এর element গুলোকে map করে এবং পরবর্তীতে array এর depth value হিসেবে 1 set করে।
এই callback function টি ৩টি argument accept করে।
- currentValue : array এর যে element টি বর্তমানে processing হচ্ছে।
- Index : currentValue এর index (optional)
- Array : যে array তে flatMap চালানো হচ্ছে। (optional)
- thisArg : callback function টি execute করার সময় this এর value হিসেবে ব্যবহার করা হয়। (optional)
Syntax :
var newArr=arr.flatMap(function callback(currentValue[ , index[ , array]]) { return element } [ , thisArg])
Example 1:
const arr = [1, 2, 3, 5, 6]; const newArr = arr.flatMap((val) => val * 2); console.log(newArr); // output : [2, 4, 6, 10, 12]
এখানে arr নামক array টির উপর flatMap function ব্যবহার করে প্রতিটির value দ্বিগুণ করে newArr নামক array টির মাধ্যমে return করা হচ্ছে।
Example-2 :
const roll = [1, 2, 3, [[[[5, 6]]]]]; const result = [80, 90, 20, 40]; const newArr = roll.flatMap((val, index) => val + "-" + result[index]); console.log(newArr); // [ '1-80', '2-90', '3-20', '5,6-40' ]
Example-3 :
Array এর i & length-i তম সংখ্যার যোগফল বের করার নিয়ম flatmap এর মাধ্যমে।
const roll = [1, 2, 3, 5, 6]; const newArr = roll.flatMap( (val, index, arr) => val + arr[arr.length - (index + 1)] ); console.log(newArr); // [ 7, 7, 6, 7, 7 ]