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

Lọc đối tượng lồng nhau theo khóa sử dụng JavaScript


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

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

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

Hàm 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 title được bao gồm một phần hoặc toàn bộ trong mảng chuỗi thứ hai.

Ví dụ

Mã thực hiện:

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 = arr.filter(obj => {
    const { title } = obj;
    return !!titles.find(el => title.includes(el));
  });
  return res;
};
console.log(filterByTitle(arr, filterTitles));

Kết quả

Kết quả trong console:

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