Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열에서 중복 항목을 완전히 제거

<시간/>

배열을 받아서 모든 중복 값이 ​​제거된 새 배열을 반환하는 함수를 작성해야 합니다.

원래 배열에 두 번 이상 나타난 값은 새 배열에도 한 번 나타나지 않아야 합니다.

예를 들어 입력이 -

인 경우
const arr = [23,545,43,232,32,43,23,43];

출력은 다음과 같아야 합니다. -

const output = [545, 232, 32];

차이점 이해하기 -

  • Array.prototype.indexOf() → 검색된 문자열이 존재하면 가장 먼저 나타나는 인덱스를 반환하고, 존재하지 않으면 -1을 반환합니다.

  • Array.prototype.lastIndexOf() → 검색된 문자열이 존재하면 마지막으로 발생한 인덱스를 반환하고, 그렇지 않으면 -1을 반환합니다.

두 방법 모두 왼쪽에서 오른쪽으로 시작합니다.

두 방법 모두 두 번째 인수가 정의되지 않은 경우 0부터 시작하고, 숫자인 경우 두 번째 인수부터 시작합니다.

따라서 여기서 중요한 점은 배열에서 indexOf() 및 lastIndexOf() 메서드가 동일한 인덱스를 가리키는 경우 한 번만 존재한다는 것을 확인할 수 있으므로 이 결과를 코드에서 사용한다는 것입니다.

함수의 전체 코드는 다음과 같습니다. -

예시

const arr = [23,545,43,232,32,43,23,43];
const deleteDuplicate = (arr) => {
   const output = arr.filter((item, index, array) => {
      return array.indexOf(item) === array.lastIndexOf(item);
   })
   return output;
};
console.log(deleteDuplicate(arr));

출력

콘솔의 출력은 -

[ 545, 232, 32 ]