JavaScript에서 객체의 객체(object of objects)를 각 값이 배열인 객체 구조로 변환하려면 Object.fromEntries()와 map() 메서드를 함께 활용하면 됩니다.
핵심 아이디어는 다음과 같습니다.
Object.entries()로 객체를[키, 값]쌍의 배열로 변환합니다.map()으로 각 값을 하나의 요소를 가진 배열[값]으로 감싸줍니다.Object.fromEntries()로 다시 객체 형태로 되돌립니다.
예제 코드
const studentDetails = {
'details1': {Name: "John", CountryName: "US"},
'details2': {Name: "David", CountryName: "AUS"},
'details3': {Name: "Bob", CountryName: "UK"},
};
console.log(
Object.fromEntries(Object.entries(studentDetails).map(([key,
value]) => [key, [value]]))
);프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo45.js라고 가정합니다.
실행 결과
위 코드를 실행하면 아래와 같이 각 키의 값이 객체 하나를 담은 배열로 변환된 것을 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo45.js
{
details1: [ { Name: 'John', CountryName: 'US' } ],
details2: [ { Name: 'David', CountryName: 'AUS' } ],
details3: [ { Name: 'Bob', CountryName: 'UK' } ]
}이처럼 Object.entries()map() → Object.fromEntries()의 조합은 객체의 구조를 유지한 채 값의 형태만 자유롭게 가공할 때 매우 유용하게 사용됩니다.