[javascript] 객체의 속성 값을 기준으로 객체 그룹화하기

JavaScript에서는 객체의 속성 값을 기준으로 객체를 그룹화하는 방법을 쉽게 구현할 수 있습니다. 이를 통해 동일한 값을 가지는 객체들을 묶어서 처리하는 작업을 수행할 수 있습니다.

예시 코드

아래는 속성 값을 기준으로 객체를 그룹화하는 예시 코드입니다.

const students = [
  { name: 'John', grade: 'A' },
  { name: 'Alice', grade: 'B' },
  { name: 'Bob', grade: 'A' },
  { name: 'Eve', grade: 'C' },
  { name: 'Mike', grade: 'B' }
];

// 속성 값을 기준으로 객체 그룹화하기
const groupedStudents = students.reduce((groups, student) => {
  if (!groups[student.grade]) {
    groups[student.grade] = [];
  }
  groups[student.grade].push(student);
  return groups;
}, {});

console.log(groupedStudents);

위의 코드에서는 students라는 배열에 각 학생들의 이름과 학점 정보가 담긴 객체들이 저장되어 있습니다.

reduce 메소드를 사용하여 students 배열을 순회하면서, 학점 정보를 그룹의 키로 하여 객체를 그룹화하고 있습니다. 각 학점 그룹에 속한 학생들은 해당 그룹의 배열에 추가됩니다.

그룹화된 결과는 groupedStudents에 저장되며, console.log(groupedStudents)를 통해 결과를 출력합니다. 아래와 같은 결과가 출력됩니다.

{
  A: [
    { name: 'John', grade: 'A' },
    { name: 'Bob', grade: 'A' }
  ],
  B: [
    { name: 'Alice', grade: 'B' },
    { name: 'Mike', grade: 'B' }
  ],
  C: [
    { name: 'Eve', grade: 'C' }
  ]
}

이처럼, 속성 값을 기준으로 객체를 그룹화하는 방법을 사용하면 필요한 작업을 간단하게 처리할 수 있습니다.

참고 자료