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 |