Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

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 },
];

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

फ़ंक्शन को तब प्रत्येक अद्वितीय छात्र के स्कोर संपत्ति के अनुसार 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. JavaScript में सरणी का औसत (Average) निकालना JavaScript में सरणी का औसत (Average) निकालना

    JavaScript में सरणी का औसत (average) निकालने का निम्नलिखित कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Calcula

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

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

  1. JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना

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