배열에서 적어도 두 번 나타나는 맨 처음 요소의 인덱스를 반환하는 함수를 작성해야 합니다. 요소가 두 번 이상 나타나지 않으면 -1을 반환해야 합니다. 조건은 이 작업을 일정한 공간에서 수행해야 한다는 것입니다(즉, 추가 메모리를 사용하지 않음).
이 문제에 대한 해결책을 생각해 봅시다. for 루프를 사용하여 배열을 반복하고 Array.prototype.lastIndexOf() 메서드를 사용하여 중복을 확인합니다.
예시
const firstDuplicate = arr => { for(let i = 0; i < arr.length; i++){ if(arr.lastIndexOf(arr[i]) !== i){ return i; }; }; return -1; } console.log(firstDuplicate([3, 5, 6, 8, 5, 3])); // 0 console.log(firstDuplicate([0, 1, 2, 3, 4, 4, 5])); // 4 console.log(firstDuplicate([0, 1, 1, 2, 3, 4, 4, 5])); // 1 console.log(firstDuplicate([0, 1, 2, 3, 4, 9, 5])); // -1
출력
콘솔의 출력은 -
0 4 1 -1