ধরা যাক, আমাদের কাছে নিচের মতো সংখ্যার অ্যারে-এর-অ্যারে রয়েছে:
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
প্রতিটি সাব-অ্যারে কঠোরভাবে দুটি উপাদান ধারণ করবে। আমাদের একটি ফাংশন লিখতে হবে যা একটি নতুন অ্যারে তৈরি করবে যেখানে একই প্রথম মান থাকা সাব-অ্যারেগুলোর দ্বিতীয় উপাদানগুলো একসাথে গ্রুপ করা থাকবে।
তাহলে, উপরের অ্যারেটির জন্য আউটপুট হবে:
const output = [
[45, 34, 49],
[34, 67],
[78, 65]
];
আমরা Array.prototype.reduce() মেথড ব্যবহার করব যা একটি Map() সাহায্যে প্রয়োজনীয় অ্যারেটি নির্মাণ করবে।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
const constructSimilarArray = (arr = []) => {
const creds = arr.reduce((acc, val) => {
const { map, res } = acc;
if(!map.has(val[0])){
map.set(val[0], res.push([val[1]]) - 1);
}else{
res[map.get(val[0])].push(val[1]);
};
return { map, res };
}, {
map: new Map(),
res: []
});
return creds.res;
};
console.log(constructSimilarArray(arr));
আউটপুট
এটি কনসোলে নিচের আউটপুট তৈরি করবে:
[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]