JavaScript - Set 생성 및 초기화

Set을 생성하고 값들로 초기화하는 방법을 소개합니다.

1. 비어있는 Set 생성

Set 객체는 new Set()으로 생성할 수 있습니다. 초기 값을 설정하지 않았기 때문에 비어있는 Set가 생성됩니다.

const set1 = new Set();
console.log(set1);

Output:

Set(0) {}

2. 초기 값으로 Set 초기화

new Set()에 인자로 Iterator를 전달하여 초기 값으로 객체를 생성할 수 있습니다.

아래 예제는 배열을 인자로 전달하였습니다.

const set1 = new Set([1, 2, 3, 4]);
console.log(set1);

const set2 = new Set(['a', 'b', 'c', 'd', 'e']);
console.log(set2);

Output:

Set(4) { 1, 2, 3, 4 }
Set(5) { 'a', 'b', 'c', 'd', 'e' }

또한, 아래 예제와 같이 Spread 연산자를 사용하여, 두개의 배열의 값을 동시에 Set의 초기 값으로 입력할 수 있습니다.

const arr1 = [1, 2, 3, 4];
const arr2 = ['a', 'b', 'c', 'd', 'e'];

const set1 = new Set([...arr1, ...arr2]);
console.log(set1);

Output:

Set(9) { 1, 2, 3, 4, 'a', 'b', 'c', 'd', 'e' }

3. 객체의 value로 Set 초기화

객체가 갖고 있는 값들을 Set의 초기 값으로 입력하여 Set 객체를 생성할 수 있습니다.

아래 예제에서 students 객체는 student 데이터를 갖고 있습니다. Set의 생성자에서 map을 사용하여 name을 리턴하도록 만들면 students 객체의 name 값들로 Set가 초기화됩니다.

const students = [
  {name: 'Todd', age: 40},
  {name: 'Alex', age: 33},
  {name: 'Patrick', age: 25},
];

const set1 = new Set(students.map(obj => obj.name));
console.log(set1);

Output:

Set(3) { 'Todd', 'Alex', 'Patrick' }

4. 문자열의 문자들로 Set 초기화

Set의 생성자로 문자열을 전달하면, 각각의 문자가 Set의 값으로 초기화됩니다.

const set1 = new Set('hello world');
console.log(set1);

Output:

Set(8) { 'h', 'e', 'l', 'o', ' ', 'w', 'r', 'd' }

5. 다른 Set로 Set 초기화

다른 Set의 값으로 Set를 초기화 할 수 있습니다.

아래 예제와 같이 Set의 생성자에 Set를 인자로 전달하면 됩니다. 또한 Spread 연산자를 사용하여 다른 값과 함께 초기화 할 수 있습니다.

const set1 = new Set(['a', 'b', 'c']);
console.log(set1);

const set2 = new Set(set1);
console.log(set2);

const set3 = new Set([...set2, 'd']);
console.log(set3);

Output:

Set(3) { 'a', 'b', 'c' }
Set(3) { 'a', 'b', 'c' }
Set(4) { 'a', 'b', 'c', 'd' }

6. Set.add()를 이용하여 Set 초기화

Set.add(value)value를 Set에 추가합니다.

아래 예제와 같이 빈 Set 객체를 생성하고, add()로 값을 추가할 수 있습니다.

const set1 = new Set();
set1.add('a');
set1.add('b');
set1.add('c');

console.log(set1);

Output:

Set(3) { 'a', 'b', 'c' }
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha