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

Gộp và loại bỏ trùng lặp mảng trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào hai mảng số arr1 và arr2 làm đối số thứ nhất và thứ hai. Hàm phải gộp các phần tử của cả hai mảng vào một mảng mới và nếu khi gộp hoặc trước khi gộp tồn tại bất kỳ bản sao nào, chúng ta nên xóa các bản sao thừa để chỉ còn một bản sao của mỗi phần tử trong mảng đã gộp.

Thứ tự không quá quan trọng nhưng tần suất xuất hiện của mỗi phần tử (phải là 1) là quan trọng.

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

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];

Thì đầu ra sẽ là:

const output = [6, 5, 2, 1, 8, 3, 4, 9];

Ví dụ

Dưới đây là mã thực hiện:

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];
const mergeAndRectify = (arr1 = [], arr2) => {
  const { length: len1 } = arr1;
  const { length: len2 } = arr2;
  const res = [];
  let curr = 0;
  for (let i = 0; i < len1 + len2; i++) {
    if (i >= len1) {
      curr = i - len1;
      if (!res.includes(arr1[curr])) {
        res.push(arr1[curr]);
      }
    } else {
      curr = i;
      if (!res.includes(arr2[curr])) {
        res.push(arr2[curr]);
      }
    }
  }
  return res;
};
console.log(mergeAndRectify(arr1, arr2));

Kết quả

Đầu ra trên console:

[3, 4, 6, 8, 9, 5, 2, 1]