Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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 },
];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो पहले तर्क के रूप में एक ऐसी सरणी और दूसरे तर्क के रूप में एक संख्या, मान लीजिए, के रूप में लेता है।

फिर फ़ंक्शन को स्कोर संपत्ति के अनुसार प्रत्येक अद्वितीय छात्र के उच्चतम रिकॉर्ड चुनना चाहिए और प्रत्येक छात्र के लिए औसत की गणना करनी चाहिए। यदि किसी छात्र के लिए पर्याप्त रिकॉर्ड नहीं हैं, तो हमें उनके सभी रिकॉर्ड को ध्यान में रखना चाहिए।

और अंत में, फ़ंक्शन को उस ऑब्जेक्ट को वापस करना चाहिए जिसमें छात्र आईडी कुंजी के रूप में हो और उनका औसत स्कोर मान के रूप में हो।

उदाहरण

इसके लिए कोड होगा -

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. जावास्क्रिप्ट में एक सरणी के औसत की गणना करना

    जावास्क्रिप्ट में एक सरणी के औसत की गणना के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docu

  1. जावास्क्रिप्ट में ऑब्जेक्ट सदस्यों को सेट करना

    जावास्क्रिप्ट में ऑब्जेक्ट सदस्यों को सेट करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&g

  1. जावास्क्रिप्ट में प्रत्येक नोड के लिए अगला बड़ा नोड ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो लिंक की गई सूची के शीर्ष को पहले और एकमात्र तर्क के रूप में लेता है। node_i.val, और j सबसे छोटा संभव विकल्प है। यदि ऐसा j मौजूद नहीं है, तो अगला बड़ा मान 0 है। हमारे फ़ंक्शन को एक सरणी तैयार करनी चाहिए और वापस करनी चाहिए जिसमें संबंधित तत्व सूची मे