
JavaScript에서 배열과 문자열에서 중복값을 제거하는 여러 가지 방법이 있는데, 아래는 알고리즘 풀이를 하면서 알게된 내용을 정리해보았다.
배열에서 중복값 제거하기
1. Set 사용
const array = [1, 2, 3, 4, 3, 2, 1];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray);
2. filter 및 indexOf 사용
const array = [1, 2, 3, 4, 3, 2, 1];
const uniqueArray = array.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray);
3. reduce 사용
const array = [1, 2, 3, 4, 3, 2, 1];
const uniqueArray = array.reduce((accumulator, currentValue) => {
if (!accumulator.includes(currentValue)) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
console.log(uniqueArray);
문자열에서 중복값 제거하기
1. Set 및 Array.from 사용
const str = 'aabbc';
const uniqueStr = Array.from(new Set(str)).join('');
console.log(uniqueStr);
2. indexOf 및 반복문 사용
const str = 'aabbc';
let uniqueStr = '';
for (let char of str) {
if (uniqueStr.indexOf(char) === -1) {
uniqueStr += char;
}
}
console.log(uniqueStr);
이러한 방법 중 어떤 것을 선택할지는 상황에 따라 다를 수 있는데, 개인적으로는 Set을 사용하는 방법이 가장 간결하고 성능이 좋은것 같다. filter 및 indexOf를 사용하는 방법은 ES5 이전의 환경에서 유용할 수 있고, 선택한 방법은 코드의 가독성 및 성능 요구에 따라 다를 수 있으니 적절한 상황에 맞게 사용하자.
'Javascript' 카테고리의 다른 글
파괴적 처리와 비파괴적 처리(destructive and non-destructive) (23) | 2023.11.22 |
---|---|
배열과 객체 구조 분해 할당(destructuring assignment) (27) | 2023.11.21 |
동기(Synchronous)와 비동기(Asynchronous) (16) | 2023.11.20 |
spread 연산자(...)와 rest 파라미터(...)는 같은 것일까? (34) | 2023.11.19 |
배열의 내장함수 정리 - 2 (33) | 2023.11.18 |