알고리즘 문제를 풀면서 자주 중복값을 제거해야할 때가 생긴다.
중복값을 제거하는 여러가지 방법을 다시 한번 복습하는 차원에서 정리해보았다.
어떤 원리로 작동하는 건지 뜯어보았다.
uniqueArr 에 없는 요소만 dupArr에서 비교해 가져온다⇒중복되지 않은 값들만 가져와 uniqueArr에 넣는다.
const dupArr = [1, 2, 3, 1, 2];
let uniqueArr = [];
dupArr.forEach((element) => {
if (!uniqueArr.includes(element)) {
uniqueArr.push(element);
}
});
new Set으로 set객체로 만들어 유일한 값만 남긴다. 단, spread syntax로 다시 펼쳐 배열형태로 만들어주어야 한다.
const dupArr = [1, 2, 3, 1, 2];
const set = new Set(dupArr);
const uniqueArr = [...set];
'첫번째'로 나타나는 값의 인덱스가 검사하는 현재 값의 인덱스와 같을 때 ⇒ 즉, 검사하는 값이 첫번째로 나타난 값일 때만 리턴 (두번쨰,세번째로 똑같은 값이 나타나면 리턴하지 않음)
const dupArr = [1, 2, 3, 1, 2];
const uniqueArr = dupArr.filter((element, index) => {
return dupArr.indexOf(element) === index;
});