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. 

 

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])

উদাহরন
  • উদাহরণ- ১
const arr1 = [1, 2, [3, 4]];
console.log(arr1.flat()); //[1, 2, 3, 4]

 

  • উদাহরণ- ২
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

 

  • উদাহরণ- ৩

এখানে arr নামক array টির উপর flatMap function ব্যবহার করে প্রতিটির value দ্বিগুণ করে newArr নামক array টির মাধ্যমে return করা হচ্ছে।

const arr = [1, 2, 3, 5, 6];
const newArr = arr.flatMap((val) => val * 2);
console.log(newArr);
// output : [2, 4, 6, 10, 12]

 

  • উদাহরণ- ৪
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' ]

 

    • উদাহরণ- ৫
    • Array এর i & length-i তম সংখ্যার যোগফল বের করার নিয়ম flatmap এর মাধ্যমে।

Lorem</P

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 ]

 

এসো নিজে করি
var arr2 = [1, 2, [3, 4, [5, 6]]];
console.log(arr2.flat());
  • উল্লিখিত কোডটির আউটপুট কি?
let arr1 = [1, 2, 3, 4];
arr1.flatMap((x) => console.log([[x * 2]]));

  • উল্লিখিত কোডটির আউটপুট কি?