用 JavaScript 從陣列中返回第一個重複數字


我們需要編寫一個函式,它可以返回陣列中第一次出現至少兩次的元素的索引。如果沒有元素出現超過一次,我們需要返回 -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

更新於:26-8 月 -2020

597 瀏覽數

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.