使用遞迴在 JavaScript 陣列中移除連續的重複項


我們應該寫一個接受數字/字串文字陣列的函式。該函式應該在不使用額外儲存空間的情況下移除陣列中所有多餘的連續元素。

例如,如果輸入陣列是 -

const arr = [17, 17, 17, 12, 12, 354, 354, 1, 1, 1];

則輸出應該是 -

const output = [17, 12, 354, 1];

因此,讓我們寫出此函式的程式碼 -

示例

程式碼為 -

const arr = [17, 17, 17, 12, 12, 354, 354, 1, 1, 1];
const comp = (arr, len = 0, deletable = false) => {
   if(len < arr.length){
      if(deletable){
         arr.splice(len, 1);
         len--;
      }
      return comp(arr, len+1, arr[len] === arr[len+1])
   };
   return;
};
comp(arr);
console.log(arr);

輸出

控制檯中的輸出是 -

[ 17, 12, 354, 1 ]

更新於:20-Oct-2020

410 次瀏覽

開啟你的 職業生涯

透過完成課程獲取認證

開始學習
廣告