ধরুন, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে -
const arr = [ {"firstName":"John", "value": 89}, {"firstName":"Peter", "value": 151}, {"firstName":"Anna", "value": 200}, {"firstName":"Peter", "value": 22}, {"firstName":"Anna","value": 60} ];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি অ্যারে নেয় এবং সেই সমস্ত বস্তুর মান বৈশিষ্ট্যকে একত্রিত করে যেগুলির প্রথমনাম বৈশিষ্ট্যের জন্য একই মান রয়েছে৷
অতএব, উপরের অ্যারের জন্য, আউটপুটটি −
এর মত হওয়া উচিতconst output = [ {"firstName":"John", "value": 89}, {"firstName":"Peter", "value": 173}, {"firstName":"Anna", "value": 260} ];
প্রতিটি বস্তুর জন্য, আমরা পুনরাবৃত্তিমূলকভাবে তাদের অনুরূপ বস্তুগুলি খুঁজে পাব
(এই প্রশ্নের প্রেক্ষাপটের জন্য অনুরূপ বস্তু হল যেগুলির অনুরূপ firstName মান রয়েছে)।
তারপর আমরা একটি অবজেক্টে ভ্যালু প্রপার্টি যোগ করব এবং অ্যারে থেকে অন্য অবজেক্ট ডিলিট করব। আমরা অ্যারের শেষ পর্যন্ত না পৌঁছানো পর্যন্ত এটি করা হবে। পৌঁছানোর পর, আমরা আমাদের অ্যারেকে কাঙ্খিত অ্যারেতে কমিয়ে দিতাম।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [ {"firstName":"John", "value": 89}, {"firstName":"Peter", "value": 151}, {"firstName":"Anna", "value": 200}, {"firstName":"Peter", "value": 22}, {"firstName":"Anna","value": 60} ]; const sumSimilar = arr => { const res = []; for(let i = 0; i < arr.length; i++){ const ind = res.findIndex(el => el.firstName === arr[i].firstName); if(ind === -1){ res.push(arr[i]); }else{ res[ind].value += arr[i].value; }; }; return res; }; console.log(sumSimilar(arr));
আউটপুট
এটি কনসোলে −
নিম্নলিখিত আউটপুট তৈরি করবে[ { firstName: 'John', value: 89 }, { firstName: 'Peter', value: 173 }, { firstName: 'Anna', value: 260 } ]