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

Lọc đối tượng lồng nhau theo các khóa bằng JavaScript

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

const arr = [{ 'title': 'Hey',
   'foo': 2,
   'bar': 3
}, {
   'title': 'Sup',
   'foo': 3,
   'bar': 4
}, {
   'title': 'Remove',
   'foo': 3,
   'bar': 4
}];

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng như vậy làm đầu vào đầu tiên và một mảng các ký tự chuỗi làm đầu vào thứ hai.

Sau đó, hàm của chúng ta sẽ chuẩn bị một mảng mới chứa tất cả các đối tượng có thuộc tính tiêu đề được bao gồm một phần hoặc toàn bộ trong mảng đầu vào thứ hai của các ký tự.

Ví dụ

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

const arr = [{ 'title': 'Hey',
   'foo': 2,
   'bar': 3
}, {
   'title': 'Sup',
   'foo': 3,
   'bar': 4
}, {
   'title': 'Remove',
   'foo': 3,
   'bar': 4
}];
const filterTitles = ['He', 'Su'];
const filterByTitle = (arr = [], titles = []) => {
   let res = [];
   res = arr.filter(obj => {
      const { title } = obj;
      return !!titles.find(el => title.includes(el));
   });
   return res;
};
console.log(filterByTitle(arr, filterTitles));

Đầu ra

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

[ { title: 'Hey', foo: 2, bar: 3 }, { title: 'Sup', foo: 3, bar: 4 } ]