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

Lọc mảng đối tượng JavaScript bằng một mảng khác


Giả sử chúng ta có một mảng đối tượng như sau:

const arr = [
  {area: 'NY', name: 'Bla', ads: true},
  {area: 'DF', name: 'SFS', ads: false},
  {area: 'TT', name: 'SDSD', ads: true},
  {area: 'SD', name: 'Engine', ads: false},
  {area: 'NSK', name: 'Toyota', ads: false},
];

Chúng ta cần viết một hàm JavaScript nhận mảng này làm tham số đầu tiên và một mảng chuỗi nguyên thủy làm tham số thứ hai.

Hàm sẽ lọc mảng đối tượng đầu vào để chỉ chứa những đối tượng có thuộc tính "area" nằm trong mảng chuỗi (tham số thứ hai).

Ví dụ

Mã thực hiện:

const arr = [
  {area: 'NY', name: 'Bla', ads: true},
  {area: 'DF', name: 'SFS', ads: false},
  {area: 'TT', name: 'SDSD', ads: true},
  {area: 'SD', name: 'Engine', ads: false},
  {area: 'NSK', name: 'Toyota', ads: false},
];
const keys = ['NY', 'SD'];
const filterByArea = (arr = [], keys = []) => {
  const res = [];
  for(let i = 0; i < arr.length; i++){
    const { area } = arr[i];
    if(keys.includes(area)){
      res.push(arr[i]);
    }
  }
  return res;
};
console.log(filterByArea(arr, keys));

Kết quả

Kết quả trong console:

[
  { area: 'NY', name: 'Bla', ads: true },
  { area: 'SD', name: 'Engine', ads: false }
]