मान लीजिए, हमारे पास वस्तुओं की एक सरणी है जिसमें कुछ छात्रों के बारे में जानकारी है और इस तरह की अवधि में उनके द्वारा प्राप्त अंक -
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 }