Javascript (ES6)
Javascript ES6 Set,WeakSet 유니크한 배열 만들기
Sorrynthx
2020. 7. 29. 21:46
// Set : 중복없이 유일한 값을 저장할려고 할 때 사용(이미 존재하는지 확인할 때 사용)
let mySet = new Set(); //Set 생성
let obj0 = {'name': 'Jacob', 'age':30};
mySet.add(obj0);
mySet.add('Taxi');
mySet.add('Bus');
mySet.add('Car');
mySet.add('Taxi'); // Taxi는 이미 있기 때문에 추가되지 않는다
mySet.forEach(function(value){
console.log(value);
});
console.log(mySet); // {"Taxi", "Bus", "Car"}
console.log(mySet.has("Taxi")); // true
mySet.delete("Car"); // 삭제 방법
console.log(mySet); // {"Taxi", "Bus"}
//WeakSet : 참조를 가지고 있는 객체만 저장이 가능하다.
let arr = [1,2,3,4];
let arr2 = [5,6,7,8];
let obj = {arr, arr2};
let ws = new WeakSet(); // WeakSet 생성
ws.add(arr);
ws.add(function(){});
ws.add(arr2);
ws.add(obj);
/* error invalid type 발생 (참조값 없기 때문에 error)
ws.add(111);
ws.add('test');
*/
arr = null; //WeakSet에 추가한 후 arr에 null로 바꾸면 has로 확인 시, false
console.log(ws);
console.log(ws.has(arr), ws.has(arr2)); //false true
/*
value: {arr: Array(4), arr2: Array(4)}
1: Array(4)
value: (4) [5, 6, 7, 8]
2: Array(4)
value: (4) [1, 2, 3, 4]
*/
유니크한(유일한) 값을 가진 배열 만들 때 사용하는 Set
참조값을 가지는 유니크한 배열을 만들 때 사용하는 WeakSet