ধরুন, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে −
const arr =[ { "SupplierName" :"John", "Category " :"A", "Points" :3 }, { "SupplierName" :"John", "Category " :"A", "Points " :11 }, { "SupplierName" :"John", "Category " :"A", "Points" :undefined }, { "SupplierName" :"John", "Category " :"B", "Points" :2 }, { "SupplierName" :"John", "Category " :"B", "Points" :6 }, { "SupplierName" :"Praveen", "Category " :"A", "Points" :3 } , { "SupplierName" :"Praveen", "Category " :"A", "Points" :7 }];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এইরকম একটি অ্যারে নেয়৷
ফাংশন নিম্নলিখিত জিনিসগুলি করা উচিত -
- পুনরাবৃত্তিকারী সরবরাহকারীদেরকে একটি স্বতন্ত্র পৃথক বস্তুতে গোষ্ঠীবদ্ধ করুন (পুনরাবৃত্তির দ্বারা, আমরা একই "সাপ্লায়ারের নাম" এবং "শ্রেণী" ক্ষেত্র সহ বস্তুগুলিকে বোঝাতে চাই)।
- একসাথে তাদের পয়েন্ট যোগ করুন
- প্রতিটি বস্তুতে একটি নতুন "গড় ক্ষেত্র যোগ করুন, সেই সরবরাহকারীর গড় পয়েন্ট সহ।
সুতরাং, অবশেষে আউটপুট −
এর মত হওয়া উচিতconst output =[ { "SupplierName" :"John", "Category " :"A", "Points" :14, "Average" :7 }, { "SupplierName" :"John", "Category " :"B", "পয়েন্ট" :8, "গড়" :4 }, { "SupplierName" :"Praveen", "Category " :"A", "Points" :10, "Average" :5 }];পূর্বে>উদাহরণ
const arr =[ { "SupplierName" :"John", "Category " :"A", "Points" :3 }, { "SupplierName" :"John", "Category " :"A", "Points " :11 }, { "SupplierName" :"John", "Category " :"A", "Points" :undefined }, { "SupplierName" :"John", "Category " :"B", "Points" :2 }, { "SupplierName" :"John", "Category " :"B", "Points" :6 }, { "SupplierName" :"Praveen", "Category " :"A", "Points" :3 } , { "SupplierName" :"Praveen", "Category " :"A", "Points" :7 }];const groupAndAverage =(arr =[]) => { const group =arr.reduce((acc, obj) => { const name =obj.SupplierName + obj.Category; if (acc[name]) { if (obj.Points) (acc[name].Points +=obj.Points) &&++acc[name]. গড়; } অন্য { acc[নাম] =obj; acc[নাম]। গড় =1; // আইটেম কাউন্টার হিসাবে 'গড়' বৈশিষ্ট্য গ্রহণ (প্রথম পর্বে) }; ফেরত acc; }, {}); // পাওয়া "পয়েন্টের গড়" const res =Object.keys(groups).map( name => { group[name].Average =Math.round(groups[name].Points/groups[name].Average); ফেরত গোষ্ঠী [নাম]; }); রিটার্ন রিটার্ন;}; console.log(JSON.stringify(groupAndAverage(arr), undefined, 4));আউটপুট
এবং কনসোলে আউটপুট হবে −
[ { "SupplierName":"John", "Category ":"A", "Points":22, "Average":6 }, { "SupplierName":"Praveen", "Category ":"A" , "পয়েন্ট":10, "গড়":5 }]