자바스크립트 객체 데이터 집계

자바스크립트에서는 객체를 사용하여 데이터를 효과적으로 저장하고 처리할 수 있습니다. 객체 데이터 집계는 이러한 객체들을 사용하여 데이터를 집계하고 통계를 생성하는 과정을 말합니다. 이를 통해 데이터의 특정 속성을 기준으로 필터링하고, 값을 계산하거나 정렬하는 등 다양한 작업을 수행할 수 있습니다.

객체 생성하기

먼저, 데이터를 저장하는 객체를 생성해보겠습니다. 예를 들어, 학생들의 성적 데이터를 저장하는 객체를 생성해보겠습니다.

let studentData = {
  John: {
    math: 90,
    science: 80,
    english: 85
  },
  Lisa: {
    math: 95,
    science: 90,
    english: 92
  },
  Alex: {
    math: 85,
    science: 95,
    english: 90
  }
};

위 예제에서 studentData 객체는 학생들의 이름을 키(key)로 하고, 각 학생의 과목별 성적을 값(value)으로 갖는 속성들을 가지고 있습니다.

데이터 집계하기

이제 생성한 객체를 사용하여 데이터를 집계해보겠습니다. 예를 들어, 전체 학생들의 수학(math) 성적의 평균을 계산해보겠습니다.

function calculateAverage(data) {
  let sum = 0;
  let count = 0;
  
  for (let student in data) {
    sum += data[student].math;
    count++;
  }
  
  return sum / count;
}

let averageMath = calculateAverage(studentData);
console.log('Average math score:', averageMath);

위 예제에서 calculateAverage 함수는 인자로 받은 객체의 각 학생의 수학 성적을 더하여 평균을 계산한 후 리턴합니다. 이를 호출하여 전체 학생들의 수학 성적의 평균을 구하고 콘솔에 출력합니다.

데이터 필터링하기

객체 데이터 집계를 사용하면 데이터를 필터링하여 특정 조건에 맞는 데이터만을 추출할 수도 있습니다. 예를 들어, 성적이 90점 이상인 학생들의 이름을 추출하는 함수를 만들어보겠습니다.

function filterStudentsByScore(data, minScore) {
  let filteredStudents = [];
  
  for (let student in data) {
    if (data[student].math >= minScore) {
      filteredStudents.push(student);
    }
  }
  
  return filteredStudents;
}

let highScorers = filterStudentsByScore(studentData, 90);
console.log('High scorers:', highScorers);

위 예제에서 filterStudentsByScore 함수는 인자로 받은 객체의 각 학생의 수학 성적을 확인하여, minScore보다 큰 점수를 받은 학생들의 이름을 배열에 담아 리턴합니다. 이를 호출하여 성적이 90점 이상인 학생들의 이름을 추출하고 콘솔에 출력합니다.

데이터 정렬하기

객체 데이터 집계를 사용하면 데이터를 정렬하여 원하는 순서로 나열할 수도 있습니다. 예를 들어, 전체 학생들의 수학 성적을 기준으로 내림차순으로 정렬하는 함수를 만들어보겠습니다.

function sortByScore(data) {
  let sortedStudents = [];
  
  for (let student in data) {
    sortedStudents.push({
      name: student,
      score: data[student].math
    });
  }
  
  sortedStudents.sort((a, b) => b.score - a.score);
  
  return sortedStudents;
}

let sortedByMathScore = sortByScore(studentData);
console.log('Sorted by math score:', sortedByMathScore);

위 예제에서 sortByScore 함수는 인자로 받은 객체의 각 학생의 수학 성적과 이름을 새로운 객체로 변환하여 배열에 담고, 이를 수학 성적을 기준으로 정렬합니다. 이를 호출하여 학생들을 수학 성적이 높은 순서로 정렬하고 콘솔에 출력합니다.


자바스크립트 객체 데이터 집계를 사용하면 데이터를 효과적으로 처리하고 원하는 결과를 도출할 수 있습니다. 이를 활용하여 다양한 데이터 처리 작업을 수행할 수 있으며, 데이터의 분석 및 가공에 유용한 도구로 활용할 수 있습니다.