본문 바로가기

Programming/Javascript

Javascript - ES6 set() 자료구조

1. 데이터 자료구조 

: 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조(집합)이다.

- Javascript의 자료 구조로는 배열(Array), 스택(Stack), 큐(Queue), 해시 테이블(Hash Table), 연결 리스트(Linked List), 트리(Tree), 그래프(Graph), Map, Set이 존재한다.

Map과 Set은 ES6부터 추가된 자료구조이다.

 

1-1. Set

: key가 없는 값이 저장되며 중복된 값을 허용하지 않는 특징을 제외하면 배열과 유사하다.

 

 

1-2. Set의 특징

: value들의 집합 또는 컬렉션으로 key가 존재하지 않는다.

배열은 같은 값을 가질 수 있지만 set은 같은 값을 중복해서 가질 수 없다.

중복해서 같은 값을 추가해도 처음 추가한 하나의 값만 유효하며 이러한 성질을 이용하여 중복을 제거하는 용도로도 많이 사용된다.

 

1-3. Set 사용법

- 생성: set()

let arrayS = new Set();		// 비어있는 set(집합) 생성
console.log(arrayS);		// Object set 객체를 반환

* 생성과 값 추가를 동시에 하는 방법

let arr = new Set().add('A').add('B');
console.log(arr);	// A, B

 

- 추가: add()

arrayS.add('ONE');
arrayS.add('TWO');
arrayS.add('THREE');
console.log(arrayS);		// ONE, TWO, THREE
console.log(arrayS.size);	// 3 출력
console.log(arrayS[0]);		// undefined 출력

arrayS.add('ONE');
arrayS.add('ONE');

console.log(arrayS);		// ONE, TWO, THREE
console.log(arrayS.size);	// 3 출력 -> ONE은 중복 값이므로 저장되지 않음

- set은 길이(length)가 아닌 size로 구할 수 있다.

 

- 삭제: delete(), clear()

delete(): 하나의 엔트리 삭제

arrayS.delete('THREE');
console.log(arrayS);	// ONE, TWO

clear(): 모든 엔트리 삭제

arrayS.clear();
console.log(arrayS);	// 빈 데이터 출력

 

※ Map 

: key - value를 한 쌍으로 묶는 개념으로 key가 있는 데이터를 저장한다는 점이 객체(Object)와 유사하다.

 Map은 key에 다양한 자료형을 허용한다.

 

2. Spread(펼침) 연산자

: 이터러블 객체(Iterable Object)의 요소를 하나씩 분리하여 전개 

let arr2 = ['K', 'O', 'R', 'E', 'A']; // 배열형태가 아닌 'KOREA' 문자열로 입력해도 같은 결과 출력

console.log(...arr2);	// K, O, R, E, A
console.log([...arr2]);	// ['K', 'O', 'R', 'E', 'A']

 

'Programming > Javascript' 카테고리의 다른 글

객체 - 프로토타입(Prototype)  (0) 2022.06.24
ES6 심볼(Symbol) 타입  (0) 2022.06.23
ES6 set() 반복  (0) 2022.06.22