Skip to content

Latest commit

 

History

History
94 lines (73 loc) · 2.38 KB

17. Set.md

File metadata and controls

94 lines (73 loc) · 2.38 KB

Set

1. Set

2. 요소 추가, 삭제

3. Set 반복문

4. Set to Array >


1. Set

  • value만을 저장하며 중복을 허용하지 않는 Collection
  • 대표 속성(property) 및 메서드(method)
    • 생성자: new Set()
    • 개수 확인: Set.size
    • 요소 추가: Set.add(value)
    • 요소 삭제: Set.delete(value)
    • 전체 삭제: Set.clear()
    • 요소 존재 여부 확인: Set.has(key)
    • 그 밖의 메서드: Set.keys(), Set.values(), Set.entries()
    • 배열에 쓰이는 Set.forEach() 도 사용이 가능하다.



2. 요소 추가, 삭제

  • 요소 추가: Set.add(value)
  • 요소 존재 여부: Set.has(value)
  • 요소 삭제: Set.delete(value)
  • 다양한 자료형을 value로 사용 가능하며, Set.add 호출 시 set이 반환되므로 체이닝(chaining) 가능
let sum = new Set();
let num = new Set([1, 2, 3 ,4, 5]);
let str = new Set("Hello!");

console.log(set);
// output: Set(0) {}
console.log(num);
// output: Set(5) { 1, 2, 3, 4, 5 }
console.log(str);
// output: Set(5) { "H", "e", "l", "o", "!" }

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

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

/* 3. delete */
set.delete(1);
set.delete(-1);
console.log(set); // output: Set(2) { 10, 20 }



3. Set 반복문

  • Collection 객체인 Set이 가지고 있는 iterator 속성을 이용하여 for ... of 구문을 통해 반복문 수행 가능
let str = new Set("Hello!");

console.log(str);
// output: Set(5) { "H", "e", "l", "o", "!" }

for (let item of str) console.log(item);
// output: H e l o !
for (let item of str.keys()) console.log(item);
// output: H e l o !
for (let item of str.values) console.log(item);
// output: H e l o !
for (let item of str.entries()) console.log(item);
// output: [ 'H', 'H' ] [ 'e', 'e' ] [ 'l', 'l' ] [ 'o', 'o' ] [ '!', '!' ]

console.log(str.keys()); // [value]
console.log(str.entries()); // [value, value] <--- Map과의 호환성을 위해 존재

4. Set to Array

  • 펼침연산자를 활용
  • Array.from()을 활용
let arr = ["a", "b", "b", "c"];
let set = new Set(arr); // Set(3) {'a', 'b', 'c'}
let set_to_array = [...set]; // ["a", "b", "c"]
let set_to_array_2 = Array.from(set); // ["a", "b", "c"]