আমাদের কাছে একটি নম্বরের অ্যারে আছে যেটিতে কিছু রিডান্ড্যান্ট এন্ট্রি রয়েছে, আমাদের কাজ হলো একটি ফাংশন লিখা যা অ্যারেটি গ্রহণ করবে এবং সব একই এন্ট্রিগুলোকে একটি সাব-অ্যারেতে গ্রুপ করে নতুন অ্যারেটি রিটার্ন করবে।
উদাহরণস্বরূপ:
//যদি ইনপুট অ্যারে হয়: const arr = [1, 3, 3, 1]; //তবে আউটপুট হবে: const output = [[1, 1], [3, 3]];
আমরা একটি HashMap ব্যবহার করব ইতিমধ্যে এসে পড়েছে এমন এলিমেন্টগুলো ট্র্যাক রাখতে এবং একটি ফর লুপ দিয়ে অ্যারেটি ওভার ইটারেট করব। কোডটি নিচে:
উদাহরণ
const arr = [1, 3, 3, 1]; const groupArray = arr => { const map = {}; const group = []; for(let i = 0; i < arr.length; i++){ if(typeof map[arr[i]] === 'number'){ group[map[arr[i]]].push(arr[i]); } else { //push মেথড নতুন দৈর্ঘ্য রিটার্ন করে //এবং নতুন পুশ করা এলিমেন্টের ইনডেক্স length-1 map[arr[i]] = group.push([arr[i]])-1; } }; return group; } console.log(groupArray(arr));আউটপুট
কনসোলে আউটপুট হবে:
[ [ 1, 1 ], [ 3, 3 ] ]