[JS] 자바스크립트 컬렉션(JavaScript Collection) - Set
2022. 3. 5. 02:00ㆍFront-end/JavaScript
Set이란?
자바스크립트의 키 기반 컬렉션(Keyed Collection)으로 ES6(ECMAScript 6)부터 소개되었다.
값(value)만을 저장하며 중복을 허용하지 않는 객체로 유일한 값을 저장할 수 있다.
요소 순서에 의미가 없고 인덱스로 요소에 접근할 수 없는 특징을 가지고 있다.
대표 속성(property) 및 메서드(method)
- 생성자 : new Set()
- 개수 확인 : Set.size
- 요소 추가 : Set.add(value)
- 요소 삭제 : Set.delete(value)
- 전체 삭제 : Set.clear()
- 요소 존재 여부 확인 : Set.has(key)
- 그 외 메서드 : Set.keys(), Set.values(), Set.entires()
요소 추가/삭제
다양한 자료형을 value로 사용 가능하며 set.add 호출 시 set이 반환되므로 체이닝(chaining)이 가능하다.
let set = new Set();
let num = new Set([1, 2, 3, 4, 5]);
let str = new Set("hello");
console.log(set); // Set(0) {}
console.log(num); // Set(5) { 1, 2, 3, 4, 5 }
console.log(str); // Set(4) { 'h', 'e', 'l', 'o' }
set.add(1).add(1).add(2).add(3);
console.log(set); // Set(3) { 1, 2, 3 }
console.log(set.has(3)); // true
console.log(set.has(4)); // false
set.delete(1);
set.delete(10);
console.log(set); // Set(2) { 2, 3 }
Set 반복문
Collection 객체인 Set이 가지고 있는 iterator 속성을 이용하여 for-of 구문을 통한 반복문 수행이 가능하다.
let str = new Set("hello");
for (const iterator of str) {
console.log(iterator); // h e l o
}
for (const iterator of str.keys()) {
console.log(iterator); // h e l o
}
for (const iterator of str.values()) {
console.log(iterator); // h e l o
}
for (const iterator of str.entries()) {
console.log(iterator);
}
// [ 'h', 'h' ]
// [ 'e', 'e' ]
// [ 'l', 'l' ]
// [ 'o', 'o' ]
Set에는 Set.keys(), Set.values() 메서드가 의미 없으므로 생략한다.
반응형
'Front-end > JavaScript' 카테고리의 다른 글
[JS] 다차원 배열 (multidimensional array) (0) | 2022.03.06 |
---|---|
[JS] Date 객체의 개념과 대표적인 메서드 (get/set) (0) | 2022.03.05 |
[JS] Math 객체의 개념과 대표적인 메서드 11가지 (0) | 2022.03.05 |
[JS] 자바스크립트 컬렉션(JavaScript Collection) - Map (0) | 2022.03.05 |
[JS] 고차 함수 (higher-order function) (0) | 2022.03.04 |