본문 바로가기
자료구조,알고리즘/Java Script 기초

JS기초 14 : Set

by 슈퍼 루키 2022. 7. 25.

Set

- value만을 저장하며 중복을 허용하지 않는 Collection

- 대표 속성과 메서드

- 생성자 : new Set()

- 개수 확인 : Set.size

- 요소 추가 : Set.add(value)

- 요소 삭제 : Set.delete(value)

- 전체 삭제 : Set.clear()

- 요소 존재 여부 확인 : Set.has(key)

- 그 밖의 메서드 : Set.keys(), Set values(key), Set.entires()

 

요소 추가/삭제

- 다양한 자료형을 value로 사용 가능하며 set.add 호출 시 체이닝(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(5) { 'h', 'e', 'l', 'o', '~' }

set.add(1) .add(1) .add(10) .add(20);
console.log(set); // Set(3) { 1, 10, 20 }

console.log(set.has(10)); // true
console.log(set.has(2)); // false

// 삭제 여부 판단
set.delete(1); // true
set.delete(-1); // false
console.log(set); // Set(2) { 10, 20 }

 

Set 반복문

- Collection 객체인 Set이 가지고 있는 iterator 속성을 이용하여 for...of 구문을 통해 반복문 수행 가능

let str = new Set("hello~");

console.log(str); // Set(5) { 'h', 'e', 'l', 'o', '~' }

for(let item of str){
  console.log(item); // h \n e \n l \n o \n ~
};

for(let item of str.keys()){
  console.log(item); // h \n e \n l \n o \n ~ key가 없어서 value 반환
};

for(let item of str.values()){
  console.log(item); // h \n e \n l \n o \n ~
};

// 맥과 호환성을 위해 key와 value 형태로 출력
for(let item of str.entries()){
  console.log(item); 
};
/*
[ 'h', 'h' ]
[ 'e', 'e' ]
[ 'l', 'l' ]
[ 'o', 'o' ]
[ '~', '~' ]
*/

 

 

반응형

댓글