কম্পিউটার

JavaScript-এ প্রতিটি ছাত্রের n সেরা নম্বরের গড় খোঁজা


ধরুন, আমাদের কাছে এমন কিছু বস্তুর একটি বিন্যাস রয়েছে যাতে কিছু শিক্ষার্থীর তথ্য এবং তাদের দ্বারা প্রাপ্ত নম্বরগুলি এইরকম সময়ের মধ্যে রয়েছে -

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 }

  1. জাভাস্ক্রিপ্টে একটি অ্যারের গড় গণনা করা

  2. জাভাস্ক্রিপ্টে অবজেক্ট সদস্য সেট করা

  3. জাভাস্ক্রিপ্টে প্রতিটি নোডের জন্য পরবর্তী বৃহত্তর নোড খোঁজা হচ্ছে

  4. জাভাস্ক্রিপ্টে পাঠ্যের একটি স্ট্রিংয়ে শীর্ষ তিনটি সবচেয়ে ঘটমান শব্দ খোঁজা