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

Làm cách nào để loại bỏ đệ quy các phần tử trùng lặp liên tiếp khỏi một mảng?

Giả sử, chúng ta có một mảng các ký tự Số có chứa một số dấu chấm thừa liên tiếp như thế này -

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

Chúng ta phải viết một hàm nén trong mảng này và xóa các mục nhập liên tiếp dự phòng tại chỗ. Vì vậy, đầu ra trông như thế này -

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

Hãy viết mã cho hàm này, chúng ta sẽ sử dụng đệ quy cho hàm này và mã cho hàm này sẽ -

Ví dụ

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);

Đầu ra

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

[ 1, 2, 3, 1 ]