채린씨의 티스토리
[JavaScript] 37. Set 본문
* Set
- value만을 저장하며 중복을 허용하지 않는 Collection
- 다양한 자료형의 value를 허용함
- 생성: newSet()
* 요소 추가/삭제, 크기, 요소 존재 여부 확인
- 요소 추가: Set.add(value)
- 요소 삭제: Set.delete(value)
- 요소 전체 삭제: Set.clear()
- 요소 개수 확인: Set.size
- 요소 존재 여부 확인: Set.has(value)
- set.add 호출 시 set이 반환되므로 체이닝(chaining) 가능
let blank_set = new Set();
let num_set = new Set([1, 2, 3, 4, 5]);
let str_set = new Set("Hello!");
let mix_set = new Set([1, "A", 2, "CD"]); // 하나의 set에 다양한 자료형의 value 허용
console.log(blank_set); // output: Set(0) {}
console.log(num_set); // output: Set(5) { 1, 2, 3, 4, 5 }
console.log(str_set); // output: Set(5) { 'H', 'e', 'l', 'o', '!' } (중복 허용 안함!!!)
console.log(mix_set); // output: Set(4) { 1, 'A', 2, 'CD' }
// add를 이용한 요소 추가
blank_set.add(1).add(1).add(3).add(5);
console.log(blank_set); // output: Set(3) { 1, 3, 5 } (중복 허용 안함!!!)
// size를 이용한 요소 개수 확인
console.log(blank_set.size); // output: 3
// has를 이용한 요소 존재 여부 확인
console.log(blank_set.has(1)); // output: true
console.log(blank_set.has(10)); // output: false
// delete를 이용한 요소 삭제
console.log(blank_set.delete(1)); // output: true (삭제가 이루어지면 true 반환)
console.log(blank_set.delete(10)); // output: false (삭제가 이루어지지 않으면 false 반환)
console.log(blank_set); // output: Set(2) { 3, 5 }
// clear를 이용한 요소 전체 삭제
blank_set.clear();
console.log(blank_set); // output: Set(0) {}
// add 호출 시 set이 반환됨
console.log(blank_set.add(10)); // output: Set(1) { 10 }
// add 호출 시 set이 반환되는 것을 이용한 체이닝(chaining)
blank_set.add(20).add(30);
console.log(blank_set); // output: Set(3) { 10, 20, 30 }
* Set 반복문
- Collection 객체인 Set이 가지고 있는 iterator 속성을 이용하여 for ... of 구문으로 반복문 수행 가능
- 모든 value값 반환: Set.keys(), Set.values() (set은 value만을 저장하므로)
- 모든 요소 반환: Set.entries()
let str_set = new Set("Hello!");
console.log(str_set);
// output: Set(5) { 'H', 'e', 'l', 'o', '!' } (중복 허용 안함!!!)
// keys를 이용해 str_set의 value값 확인
console.log(str_set.keys());
// output: [Set Iterator] { 'H', 'e', 'l', 'o', '!' }
// values를 이용해 str_set의 value값 확인
console.log(str_set.values());
// output: [Set Iterator] { 'H', 'e', 'l', 'o', '!' }
// str_set의 value값에 차례로 접근
for (let item of str_set.keys()) console.log(item);
// output: H e l o !
// str_set의 value값에 차례로 접근
for (let item of str_set.values()) console.log(item);
// output: H e l o !
// str_set의 각 요소(value)에 차례로 접근
for (let item of str_set) console.log(item);
// ouput: H e l o !
// str_set의 모든 요소에 접근
console.log(str_set.entries());
/* output:
[Set Entries] {
[ 'H', 'H' ],
[ 'e', 'e' ],
[ 'l', 'l' ],
[ 'o', 'o' ],
[ '!', '!' ]
} */
// map과의 호환 등을 이유로 위와 같이 출력되지만, set은 value만을 저장한다!!!
'자료구조, 알고리즘 > JavaScript 기초 문법' 카테고리의 다른 글
[JavaScript] 39. Date (0) | 2022.03.15 |
---|---|
[JavaScript] 38. Math (0) | 2022.03.14 |
[JavaScript] 36. Map (0) | 2022.03.14 |
[JavaScript] 35. Collection (0) | 2022.03.13 |
[JavaScript] 34. 생성자 (0) | 2022.03.13 |
Comments