ধরুন, আমাদের কাছে এমন কিছু বস্তুর একটি বিন্যাস রয়েছে যাতে কিছু শিক্ষার্থীর তথ্য এবং তাদের দ্বারা প্রাপ্ত নম্বরগুলি এইরকম সময়ের মধ্যে রয়েছে -
const marks = [ { id: 231, score: 34 }, { id: 233, score: 37 }, { id: 231, score: 31 }, { id: 233, score: 39 }, { id: 231, score: 44 }, { id: 233, score: 41 }, { id: 231, score: 38 }, { id: 231, score: 31 }, { id: 233, score: 29 }, { id: 231, score: 34 }, { id: 233, score: 40 }, { id: 231, score: 31 }, { id: 231, score: 30 }, { id: 233, score: 38 }, { id: 231, score: 43 }, { id: 233, score: 42 }, { id: 233, score: 28 }, { id: 231, score: 33 }, ];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট এবং একটি সংখ্যার মতো একটি অ্যারে নেয়, দ্বিতীয় আর্গুমেন্ট হিসাবে num বলুন৷
ফাংশনটি তারপর স্কোরের সম্পত্তি অনুসারে প্রতিটি অনন্য শিক্ষার্থীর সর্বোচ্চ রেকর্ড বাছাই করবে এবং প্রতিটি শিক্ষার্থীর জন্য গড় গণনা করবে। যদি কোনো শিক্ষার্থীর জন্য পর্যাপ্ত রেকর্ড না থাকে, তাহলে আমাদের তাদের সমস্ত রেকর্ড বিবেচনায় নেওয়া উচিত।
এবং পরিশেষে, ফাংশনটি এমন একটি বস্তু ফেরত দেবে যাতে কী হিসাবে ছাত্র আইডি এবং মান হিসাবে তাদের গড় স্কোর থাকে।
উদাহরণ
এর জন্য কোড হবে −
const marks = [ { id: 231, score: 34 }, { id: 233, score: 37 }, { id: 231, score: 31 }, { id: 233, score: 39 }, { id: 231, score: 44 }, { id: 233, score: 41 }, { id: 231, score: 38 }, { id: 231, score: 31 }, { id: 233, score: 29 }, { id: 231, score: 34 }, { id: 233, score: 40 }, { id: 231, score: 31 }, { id: 231, score: 30 }, { id: 233, score: 38 }, { id: 231, score: 43 }, { id: 233, score: 42 }, { id: 233, score: 28 }, { id: 231, score: 33 }, ]; const calculateHighestAverage = (marks = [], num = 1) => { const findHighestSum = (arr = [], upto = 1) => arr .sort((a, b) => b - a) .slice(0, upto) .reduce((acc, val) => acc + val); const res = {}; for(const obj of marks){ const { id, score } = obj; if(res.hasOwnProperty(id)){ res[id].push(score); }else{ res[id] = [score]; } }; for(const id in res){ res[id] = findHighestSum(res[id], num); }; return res; }; console.log(calculateHighestAverage(marks, 5)); console.log(calculateHighestAverage(marks, 4)); console.log(calculateHighestAverage(marks));
আউটপুট
এবং কনসোলে আউটপুট হবে −
{ '231': 193, '233': 200 } { '231': 159, '233': 162 } { '231': 44, '233': 42 }