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

JavaScript에서 Set을 객체(Object)로 변환하는 방법

개요

JavaScript에서 Set(세트)은 중복되지 않는 값들의 컬렉션입니다. 실무에서는 때때로 Set에 저장된 데이터를 키-값 쌍 형태의 객체로 변환해야 할 필요가 있습니다. 이 글에서는 Object.assign()Array.from()을 활용하여 Set을 객체로 손쉽게 변환하는 방법을 알아보겠습니다.

Set을 객체로 변환하기

먼저 다음과 같이 Set을 하나 생성해 보겠습니다.

var name = new Set(['John', 'David', 'Bob', 'Mike']);

이 Set을 객체로 변환하려면 JavaScript의 Object.assign() 메서드를 사용합니다.

var setToObject = Object.assign({}, ...Array.from(name, value => ({ [value]: 'not assigned' })));

동작 원리를 살펴보면, Array.from(name, value => ({ [value]: 'not assigned' }))는 Set의 각 값을 { 키: '기본값' } 형태의 객체로 매핑합니다. 그리고 전개 연산자(...)를 통해 이 객체들을 Object.assign()에 전달하여 빈 객체({})에 하나로 병합하는 구조입니다.

예제 코드

전체 코드는 다음과 같습니다.

var name = new Set(['John', 'David', 'Bob', 'Mike']);
var setToObject = Object.assign({}, ...Array.from(name, value => ({ [value]: 'not assigned' })));
console.log("Set 결과=");
console.log(name);
console.log("객체 결과=");
console.log(setToObject);

실행 방법

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

node fileName.js

여기서는 파일 이름이 demo260.js라고 가정하겠습니다.

실행 결과

코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo260.js
Set 결과=
Set { 'John', 'David', 'Bob', 'Mike' }
객체 결과=
{
    John: 'not assigned',
    David: 'not assigned',
    Bob: 'not assigned',
    Mike: 'not assigned'
}

마무리

이처럼 Object.assign()Array.from()을 조합하면 Set의 각 요소를 객체의 키로 변환하고, 원하는 기본값을 함께 할당할 수 있습니다. Set 데이터를 일반 객체 형태로 다루어야 하는 상황에서 유용하게 활용할 수 있는 패턴이니 꼭 기억해 두시기 바랍니다.