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 ]