자바스크립트에서 배열과 문자열의 중복값을 찾거나 제거를 해야하는 상황이 있을텐데요.
방법에 대해 알아보도록 하겠습니다.
아래 순서대로 진행하며 각 2가지 방법을 소개하도록 하겠습니다.
1. 배열에서 중복값 찾기
1-1. Set 활용하기
1-2. 객체 활용하기
2. 문자열에서 중복값 찾기
2-1. Set 객체와 split 메서드 활용하기
2-2. 객체 활용하기
1. 배열에서 중복값 찾기
1-1. Set 활용하기
const arr = [1, 2, 3, 2, 3, 2, 4, 5];
const result = [...new Set(arr.filter((item, index) => arr.indexOf(item) !== index))];
console.log(result); // [2, 3]
// 또는 모두 찾고 싶을 때, new Set()을 제거한다.
const arr2 = [1, 2, 3, 2, 3, 2, 4, 5];
const result2 = arr2.filter((item, index) => arr2.indexOf(item) !== index);
console.log(result2); // [2, 3, 2]
ES6에서는 Set 객체를 사용하여 중복된 값을 제거할 수 있습니다.
Set 객체는 중복되지 않는 값들의 집합을 나타내는 객체입니다.
위의 코드에서는 배열에서 중복된 값들을 찾아내고(filter를 활용), Set 객체로 변환하여 중복된 값이 제거된 배열을 만든 뒤, 다시 배열로 변환합니다.
또는 모든 중복값을 찾고 싶을 때는 new Set을 제외한 filter 메서드를 통해 찾을 수 있습니다.
1-2. 객체 활용하기
const arr = [1, 2, 3, 2, 3, 2, 4, 5];
const obj = {};
const result = [];
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i]]) {
result.push(arr[i]);
} else {
obj[arr[i]] = true;
}
}
console.log(result); // [2, 3, 2]
console.log([...new Set(result)]); // [2, 3]
위의 코드에서는 객체를 활용하여 중복된 값을 찾아냅니다.
객체의 key에는 배열의 값이 들어가고, value에는 true가 들어갑니다.
배열의 요소를 반복하면서 이미 객체에 존재하는 값인 경우, result 배열에 추가합니다.
이 역시 new Set을 감싸주면 고유 숫자만 담긴 배열이 resut 배열에 들어갑니다.
2. 문자열에서 중복값 찾기
2-1. Set 객체와 split 메서드 활용하기
const str = 'hello world!!!';
const result = [...new Set(str.split('').filter((item, index) => str.indexOf(item) !== index))];
console.log(result); // ['l', 'o', '!']
// 또는 모두 찾고 싶을 때, new Set()을 제거한다.
const str2 = 'hello world!!!';
const result2 = str2.split('').filter((item, index) => str2.indexOf(item) !== index);
console.log(result2); // ['l', 'o', 'l', '!', '!']
문자열에서 중복된 값을 찾기 위해서는 문자열을 배열로 변환해야 합니다.
위의 코드에서는 문자열을 split 메서드를 사용하여 배열로 변환하고, Set 객체를 사용하여 중복된 값을 제거합니다.
마찬가지로 new Set을 제외하면 문자열의 모든 중복값이 배열에 담깁니다.
2-2. 객체 활용하기
const str = 'hello world!!!';
const obj = {};
const result = [];
for (let i = 0; i < str.length; i++) {
if (obj[str[i]]) {
result.push(str[i]);
} else {
obj[str[i]] = true;
}
}
console.log(result); // ['l', 'o', 'l', '!', '!']
console.log([...new Set(result)]); // ['l', 'o']
위의 코드에서는 객체를 활용하여 문자열의 중복된 값을 찾아냅니다.
문자열의 각 문자를 반복하면서, 이미 객체에 존재하는 값인 경우, result 배열에 추가합니다.
여기도 마찬가지로 new Set을 활용해줄 수 있겠군요.
이상 자바스크립트(JavaScript)로 배열과 문자열에서 중복된 값을 쉽게 찾을 수 있는 방법을 알아보았습니다.
'개발 > JavaScript' 카테고리의 다른 글
간단! 자바스크립트(JS) 문자열을 대문자, 소문자로 변환하는 방법과 확인(체크)하는 방법 (0) | 2023.04.02 |
---|---|
간단간단! 자바스크립트(JS) 문자열, 배열 중복값 제거하기 (0) | 2023.03.31 |
빠르게 알아보는! 자바스크립트(JS) 문자열 글자수, 배열 길이 체크하기 | JavaScript String, Array Length (0) | 2023.03.27 |
매우 간단한! 자바스크립트(JS) 소수점 자르기와 두자리(둘째자리)까지 나오게 하기 (0) | 2022.10.02 |
쉬운 설명! 사례와 함께 보는 자바스크립트의 클로저(Closure)란? (0) | 2022.08.21 |
최근댓글