Computer >> Máy Tính >  >> Lập trình >> Javascript

Trả về số trùng lặp đầu tiên từ một mảng trong JavaScript

Chúng ta được yêu cầu viết một hàm trả về chỉ số của phần tử đầu tiên xuất hiện ít nhất hai lần trong mảng. Nếu không có phần tử nào xuất hiện nhiều hơn một lần, chúng ta phải trả về -1, điều kiện là chúng ta phải thực hiện điều này trong không gian không đổi (tức là không sử dụng thêm bộ nhớ).

Hãy đưa ra giải pháp cho vấn đề này. Chúng tôi sẽ sử dụng vòng lặp for để lặp lại mảng và sử dụng phương thức Array.prototype.lastIndexOf () để kiểm tra các bản sao.

Ví dụ

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

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

0
4
1
-1