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

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

Giả sử, chúng ta có một mảng các đối tượng như thế này -

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 tôi được yêu cầu viết một hàm JavaScript lấy một mảng như đối số đầu tiên và một mảng các ký tự chuỗi làm đối số thứ hai.

Sau đó, hàm của chúng ta 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" được bao gồm trong mảng các ký tự (đối số thứ hai).

Ví dụ

Mã cho điều này sẽ là -

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

Đầu ra

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

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