배열을 받아서 모든 중복 값이 제거된 새 배열을 반환하는 함수를 작성해야 합니다.
원래 배열에 두 번 이상 나타난 값은 새 배열에도 한 번 나타나지 않아야 합니다.
예를 들어 입력이 -
인 경우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 ]