ধরুন, আমাদের নিচের মতো একটি অ্যারেের অ্যারে আছে:
const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]];
আমাদের একটি ফাংশন লিখতে হবে যা এমন একটি অ্যারে গ্রহণ করে। লক্ষ্য করুন যে সব সাবঅ্যারেতে ঠিক তিনটি এলিমেন্ট রয়েছে।
ফাংশনটি সেই সাবঅ্যারে ফিল্টার আউট করবে যেটির প্রথম এলিমেন্ট রিপিট হচ্ছে। আর যেটি রিমুভ করব, তার থার্ড এলিমেন্ট তার নন-রিপিটিং কাউন্টারপার্টে যোগ করব।
তো, উপরের অ্যারেতে আউটপুট হবে:
const output = [[12345, "product", "25"],[1234567, "other", "10"]];
উদাহরণ
কোডটি হবে:
const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]];
const addSimilar = (arr = []) => {
const res = [];
const map = {};
arr.forEach(el => {
const [id, name, amount] = el;
if(map.hasOwnProperty(id)){
const newAmount = +amount + +res[map[id] - 1][2];
res[map[id] - 1][2] = '' + newAmount;
}else{
map[id] = res.push(el);
}
});
return res;
}
console.log(addSimilar(arr));
আউটপুট
কনসোলে আউটপুট হবে:
[ [ 12345, 'product', '25' ], [ 1234567, 'other', '10' ] ]