Javascript의 배열에서 중복을 제거하는 3가지 방법
12394 단어 webdevfrontendshowdevjavascript
배열에 주어진 중복 요소를 제거해야 할 필요성이 여러 번(또는 거의) 발생합니다. 잘 모르겠습니다... 수퍼에서 목록을 인쇄하고 자신의 레코드를 복제한 학생을 제거해야 하기 때문일 수 있습니다. 하나의 형태로, 무한히 많으므로 이를 수행하는 몇 가지 방법을 살펴보겠습니다.
1) 세트 사용
Set()을 사용하면 고유한 값의 인스턴스가 생성되고 암시적으로 이 인스턴스를 사용하면 중복 항목이 삭제됩니다.
따라서 이 인스턴스를 사용할 수 있고 거기에서 해당 인스턴스를 새 배열로 변환해야 합니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
let uniqueChars = [...new Set(chars)];
console.log(uniqueChars);
산출:
['A', 'B', 'C']
2) indexOf() 및 filter() 메서드 사용
indexOf() 메서드는 배열에서 요소가 처음 나타나는 인덱스를 반환합니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
chars.indexOf('B');
산출:
1
중복 요소는 인덱스가 indexOf() 값과 다른 요소입니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
chars.forEach((element, index) => {
console.log(`${element} - ${index} - ${chars.indexOf(element)}`);
});
산출:
A - 0 - 0
B - 1 - 1
A - 2 - 0
C - 3 - 3
B - 4 - 1
중복을 제거하기 위해 filter() 메서드는 인덱스가 indexOf 값과 일치하는 요소만 포함하는 데 사용됩니다. filer 메서드가 수행된 작업을 기반으로 새 배열을 반환한다는 것을 알고 있기 때문입니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
let uniqueChars = chars.filter((element, index) => {
return chars.indexOf(element) === index;
});
console.log(uniqueChars);
산출:
['A', 'B', 'C']
그리고 우연히 복제본이 필요한 경우 규칙을 변경하여 함수를 약간 수정할 수 있습니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
let dupChars = chars.filter((element, index) => {
return chars.indexOf(element) !== index;
});
console.log(dupChars);
산출:
['A', 'B']
3) includes() 및 forEach() 메서드 사용
include() 함수는 요소가 배열에 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
다음 예제에서는 배열의 요소를 반복하고 아직 없는 요소만 새 배열에 추가합니다.
let chars = ['A', 'B', 'A', 'C', 'B'];
let uniqueChars = [];
chars.forEach((element) => {
if (!uniqueChars.includes(element)) {
uniqueChars.push(element);
}
});
console.log(uniqueChars);
산출:
['A', 'B', 'C']
기본적으로 이러한 유형의 문제를 해결할 수 있는 옵션이 있으므로 더 이상 막히지 말고 마음에 드는 것을 사용할 수 있습니다.
콘텐츠가 마음에 들면 다음과 같이 내 소셜 네트워크에서 나를 팔로우할 수 있습니다.
Reference
이 문제에 관하여(Javascript의 배열에서 중복을 제거하는 3가지 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/soyleninjs/3-ways-to-remove-duplicates-in-an-array-in-javascript-259o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)