Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 객체 배열을 단일 객체로 평면화하는 가장 간단한 방법

JavaScript에서 객체 배열을 하나의 객체로 평면화(flatten)하려면 reduce() 메서드를 활용하는 것이 가장 간단하고 효율적인 방법입니다.

reduce()는 배열의 각 요소를 순회하면서 누적된 결과값을 반환하는 배열 메서드로, 여러 개의 객체를 하나의 객체로 병합할 때 특히 유용합니다.

예제 코드

예를 들어, 다음과 같이 학생 정보가 각각 분리된 객체 배열이 있다고 가정해 보겠습니다.

const studentDetails = [
    {Name: "Chris"},
    {Age: 22}
]

이 배열에 reduce()와 스프레드 연산자(...)를 함께 사용하면 모든 속성을 하나의 객체로 합칠 수 있습니다.

const studentDetails = [
    {Name: "Chris"},
    {Age: 22}
]

const objectStudent = studentDetails.reduce((obj, value) => {
    return { ...obj, ...value }
}, {})

console.log(objectStudent);

코드 설명

  • 초기값 {}: reduce의 두 번째 인자로 빈 객체를 전달하여 누적 결과가 객체 형태로 시작되도록 합니다.
  • 스프레드 연산자(...obj, ...value): 이전까지 누적된 객체(obj)와 현재 순회 중인 객체(value)의 모든 속성을 새로운 객체로 병합합니다.
  • 반환값: 최종적으로 모든 키-값 쌍이 합쳐진 단일 객체가 반환됩니다.

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo64.js라고 가정합니다.

node demo64.js

실행 결과

위 코드를 실행하면 다음과 같이 객체 배열이 하나의 객체로 평면화되어 출력됩니다.

PS C:\Users\Amit\JavaScript-code> node demo64.js
{ Name: 'Chris', Age: 22 }

참고 사항

만약 병합 과정에서 동일한 키가 여러 번 등장하면, 나중에 오는 값이 이전 값을 덮어쓰게 됩니다. 따라서 중복 키가 없는 데이터를 평면화할 때 이 방법이 가장 적합합니다. 또는 ES2019부터 도입된 Object.assign() 대신 스프레드 문법을 사용하면 더욱 간결하게 작성할 수 있다는 점도 기억해 두세요.