Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

배열에서 연속적인 중복 요소를 어떻게 재귀적으로 제거합니까?

<시간/>

다음과 같은 연속적인 중복 항목을 포함하는 숫자 리터럴 배열이 있다고 가정해 보겠습니다. -

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];

우리는 이 배열을 취하고 제자리에서 모든 중복 연속 항목을 제거하는 함수 compress를 작성해야 합니다. 출력이 다음과 같이 보이도록 -

const output = [1, 2, 3, 1];

이 함수에 대한 코드를 작성해 보겠습니다. 이를 위해 재귀를 사용하고 이에 대한 코드는 −

예시

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];
const compress = (arr, len = 0, canDelete = false) => {
   if(len < arr.length){
      if(canDelete){
         arr.splice(len, 1);
         len--;
      }
      return compress(arr, len+1, arr[len] === arr[len+1])
   };
   return;
};
compress(testArr);
console.log(testArr);

출력

콘솔의 출력은 -

[ 1, 2, 3, 1 ]