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

सबसे बड़े स्कोर के साथ जावास्क्रिप्ट आर-ईटर्न ऐरे आइटम

<घंटा/>

हमारे पास सरणियों की एक सरणी है जिसमें कुछ छात्रों द्वारा कुछ विषयों में प्राप्त अंक शामिल हैं -

const arr = [
   ['Math', 'John', 100],
   ['Math', 'Jake', 89],
   ['Math', 'Amy', 93],
   ['Science', 'Jake', 89],
   ['Science', 'John', 89],
   ['Science', 'Amy', 83],
   ['English', 'John', 82],
   ['English', 'Amy', 81],
   ['English', 'Jake', 72]
];

हमें एक फ़ंक्शन लिखना है जो इस सरणी में लेता है और प्रत्येक विषय के लिए एक ऑब्जेक्ट और उस विषय के शीर्ष स्कोरर के विवरण के साथ ऑब्जेक्ट की एक सरणी को फिर से चालू करता है।

हमारा आउटपुट इस तरह दिखना चाहिए -

[
   { "Subject": "Math",
      "Top": [
         { Name: "John", Score: 100}
      ]
   },
   { "Subject": "Science",
      "Top": [
         { Name: "Jake", Score: 89},
            { Name: "John", Score: 89}
         ]
      },
      { "Subject": "English",
         "Top": [
         { Name: "John", Score: 82}
      ]
   }
]

आइए इस फ़ंक्शन के लिए कोड लिखें -

उदाहरण

const arr = [
   ['Math', 'John', 100],
   ['Math', 'Jake', 89],
   ['Math', 'Amy', 93],
   ['Science', 'Jake', 89],
   ['Science', 'John', 89],
   ['Science', 'Amy', 83],
   ['English', 'John', 82],
   ['English', 'Amy', 81],
   ['English', 'Jake', 72]
];
const groupScore = arr => {
   return arr.reduce((acc, val, index, array) => {
      const [sub, name, score] = val;
      const ind = acc.findIndex(el => el['Subject'] === val[0]);
      if(ind !== -1){
         if(score > acc[ind]["Top"][0]["score"]){
            acc[ind]["Top"] = [{
               "name": name,"score": score
         }];
      }else if(score === acc[ind]["Top"][0]["score"]){
         acc[ind]["Top"].push({
            "name": name,"score": score
         });
      }
      }else{
         acc.push({
            "Subject": sub,"Top": [{"name": name, "score": score}]
         });
      };
      return acc;
   }, []);
};
console.log(JSON.stringify(groupScore(arr), undefined, 4));

आउटपुट

कंसोल में आउटपुट होगा -

const arr = [
   ['Math', 'John', 100],
   ['Math', 'Jake', 89],
   ['Math', 'Amy', 93],
   ['Science', 'Jake', 89],
   ['Science', 'John', 89],
   ['Science', 'Amy', 83],
   ['English', 'John', 82],
   ['English', 'Amy', 81],
   ['English', 'Jake', 72]
];
const groupScore = arr => {
   return arr.reduce((acc, val, index, array) => {
      const [sub, name, score] = val;
      const ind = acc.findIndex(el => el['Subject'] === val[0]);
      if(ind !== -1){
         if(score > acc[ind]["Top"][0]["score"]){
            acc[ind]["Top"] = [{
               "name": name,"score": score
            }];
         }else if(score === acc[ind]["Top"][0]["score"]){
            acc[ind]["Top"].push({
               "name": name,"score": score
            });
         }
         }else{
            acc.push({
               "Subject": sub,"Top": [{"name": name, "score": score}]
            });
         };
         return acc;
      }, []);
   };
   console.log(JSON.stringify(groupScore(arr), undefined, 4));[
      {
         "Subject": "Math",
            "Top": [
            {
               "name": "John","score": 100
            }
         ]
      },
      {
         "Subject": "Science",
            "Top": [
            {
               "name": "Jake",
               "score": 89
            },
            {
               "name": "John",
               "score": 89
            }
         ]
      },
      {
         "Subject": "English",
         "Top": [
            {
               "name": "John",
               "score": 82
            }
      ]
   }
]

  1. नए कीवर्ड के साथ जावास्क्रिप्ट सरणी बनाना।

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

  1. एक शर्त के साथ एक जावास्क्रिप्ट सरणी में शामिल होना?

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

  1. जावास्क्रिप्ट में एक मोड़ के साथ तत्व के बीच सबसे बड़ा अंतर

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। फ़ंक्शन को सरणी के सबसे बड़े और सबसे छोटे तत्व के बीच अंतर खोजना चाहिए। शर्त यह है कि जो तत्व छोटा है वह मूल सरणी में बड़े तत्व से पहले दिखाई देना चाहिए। उदाहरण के लिए - संख्याओं की निम्नलिखित सरणी पर विचार करें - const arr =