코딩 테스트를 공부하다가 배열의 중복값을 제거하기 위해 for문과 filter를 열심히 고민하고 고민해서 6-7줄 되는 코드를 만들었다... 만드는 와중에... 이거 맞나..? 라는 생각이 들어서 찾아본 결과, 단 1,2줄로 중복을 제거할 수 있는 방법을 찾았다.
new Set은 es6부터 지원되는 문법이다. 집합이라고도 하는데, 유일한 그러니까 중복 되지 않는 요소들의 집합을 말한다.(즉, 중복을 없애준다는 의미이다. 대박쓰)
new Set에 중복을 제거하고 싶은 배열을 넣어주면 되는데, 그 결과는 중복이 제거된 배열이 아니라 객체가 된다. 그래서 중복이 제거된 객체를 다시 배열로 만들어서 사용해야 한다.
1. 중복 제거 후 다시 배열로 만들어주기
const testArr = [1,2,3,3,3,3];
// Set(3) {1,2,3}
const testSet = new Set(testArr);
// [1,2,3]
const result = [...testSet];
2. 추가하기
const testSet = new Set();
// Set {1}
testSet.add(1);
3. 삭제하기
delete를 통해 사용할 수 있는데, boolean을 반환한다.
const testSet = new Set();
// Set {1}
testSet.add(1);
// true
testSet.delete(1);
// false
testSet.delete(3);
4. 포함 체크하기
const testSet = new Set();
// Set {1}
testSet.add(1);
// true
testSet.has(1);
// false
testSet.has(3);