Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 배열 객체로 그룹화

<시간/>

다음과 같은 일부 과목에서 일부 학생의 점수를 포함하는 배열 배열이 있다고 가정합니다. -

const arr = [ ["English", 52], ["Hindi", 154], ["Hindi", 241], ["Spanish", 10], ["French", 65], ["German", 98], ["Russian", 10] ];

우리는 그러한 배열을 취하고 객체의 객체를 반환하는 JavaScript 함수를 작성해야 합니다.

반환 개체에는 고유한 각 주제에 대한 개체가 포함되어야 하며 해당 개체에는 해당 언어의 출현 횟수, 총 점수 및 평균과 같은 정보가 포함되어야 합니다.

예시

이에 대한 코드는 -

const arr = [
   ["English", 52],
   ["Hindi", 154],
   ["Hindi", 241],
   ["Spanish", 10],
   ["French", 65],
   ["German", 98],
   ["Russian", 10]
];
const groupSubjects = arr => {
   const grouped = arr.reduce((acc, val) => {
      const [key, total] = val;
      if(!acc.hasOwnProperty(key)){
         acc[key] = {
            'count': 0,
            'total': 0
         };
      };
      const accuKey = acc[key];
      accuKey['count']++;
      accuKey['total'] += total;
      accuKey['average'] = total / accuKey['count'];
      return acc;
   }, {});
   return grouped;
};
console.log(groupSubjects(arr));

출력

콘솔의 출력은 -

{
English: { count: 1, total: 52, average: 52 },
Hindi: { count: 2, total: 395, average: 120.5 },
Spanish: { count: 1, total: 10, average: 10 },
French: { count: 1, total: 65, average: 65 },
German: { count: 1, total: 98, average: 98 },
Russian: { count: 1, total: 10, average: 10 }
}