使用递归从数组中移除连续重复项 - 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 ]

更新于:18-9-2020

454 次浏览

开启您的职业生涯

完成课程认证

立即开始
广告