Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sử dụng đệ quy xóa các mục trùng lặp liên tiếp khỏi mảng trong JavaScript

Sử dụng đệ quy xóa các mục trùng lặp liên tiếp khỏi mảng trong JavaScript

Chúng ta cần viết một hàm nhận vào một mảng các giá trị number/string. Hàm nên xóa tất cả các phần tử liên tiếp dư thừa của mảng mà không sử dụng không gian bộ nhớ thêm.

Ví dụ, nếu mảng đầu vào là:

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

Thì kết quả đầu ra nên là:

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

Do đó, hãy viết mã cho hàm này:

Ví dụ

Mã thực hiện như sau:

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

Đầu ra

Kết quả trong console sẽ là:

[ 17, 12, 354, 1 ]