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

Lọc mảng bằng một mảng khác trong JavaScript


Chúng ta cần viết một hàm JavaScript nhận hai mảng chứa các giá trị nguyên thủy. Hàm trả về phiên bản đã lọc của mảng đầu tiên, chỉ chứa các phần tử có trong mảng đầu tiên nhưng không có trong mảng thứ hai.

Chúng ta sẽ sử dụng Array.prototype.filter() và kiểm tra sự tồn tại trong mảng thứ hai bằng Array.prototype.includes() (hoặc indexOf).

Ví dụ

Mã thực hiện:

const arr1 = [1,2,3,4,5];
const arr2 = [1,3,5];
const filterUnwanted = (arr1 = [], arr2 = []) => {
  let filtered = arr1.filter(el => {
    const index = arr2.indexOf(el);
    // index -1 nghĩa là phần tử không có trong mảng thứ hai
    return index === -1;
  });
  return filtered;
};
console.log(filterUnwanted(arr1, arr2));

Kết quả

Kết quả trong console:

[2, 4]