Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Total
관리 메뉴

HYEJIN's

ES6 Set & WeakSet 알아보기 본문

JavaScript

ES6 Set & WeakSet 알아보기

hyejin_dev 2019. 2. 25. 14:02

Set으로 유니크한 배열 만들기

  • set : 중복 없이 유일한 값을 저장하려고 할때 사용한다.
  • 이미 존재하는지 체크할 때 유용하다.
let mySet = new Set();
// console.log(toString.call(mySet));

mySet.add("중복");
mySet.add("hyejin");
mySet.add("중복");
mySet.add("abcd");
mySet.add("중복");

console.log(mySet.has('중복')); // true

mySet.forEach(function(v){
  console.log(v) // 중복,  hyejin, abcd
});

mySet.delete('중복');

mySet.forEach(function(v){
  console.log(v) // hyejin, abcd
});

WeakSet 으로 효과적으로 객체타입저장하기

  • WeakSet : 참조를 가지고 있는 객체만 저장이 가능하다. (변수, 함수)
  • 객체형태를 중복없이 저장하려고 할때 유용하다.
let arr = [1,2,3,4];
let arr2 = [5,6,7,8];
let obj = {arr, arr2};

let ws = new WeakSet();

/* 
ws.add(arr); // 변수
ws.add(function(){}); // 함수

아래 3개는 오류 : Invalid value used in weak set
ws.add(111);  // 숫자
ws.add("111"); // 문자
ws.add(null);
*/

ws.add(arr);
ws.add(arr2);
ws.add(obj);

arr = null; // 이것때문에 아래 false가 나옴

console.log(ws);
console.log(ws.has(arr)+ ', '+ws.has(arr2));  // false, true
Comments