Javascript 使用两个条件从对象数组筛选数据

Javascript 使用两个条件从对象数组筛选数据,javascript,arrays,arraylist,Javascript,Arrays,Arraylist,我有一个对象数组。在每个对象中,都包含属性类别名称和categoryId以及子类别列表(即数组)。我想根据名称和子类别列表值筛选数据。这是我的示例数组 var statesWithFlags = [ { subCategoriesList: ['Badges and dentures', 'Cerezens', 'Dental implants'], categoryId: 1, categoryName: "Dental" }, { subCategoriesList: ['B

我有一个对象数组。在每个对象中,都包含属性类别名称和categoryId以及子类别列表(即数组)。我想根据名称和子类别列表值筛选数据。这是我的示例数组

var statesWithFlags = [
    { subCategoriesList: ['Badges and dentures', 'Cerezens', 'Dental implants'], categoryId: 1, categoryName: "Dental" },
    { subCategoriesList: ['Badges and dentures44', 'Dental implants'], categoryId: 2, categoryName: "Dermatology" },
    { subCategoriesList: ['Badges and dentures', 'Cerezens', 'Dental implants222'], categoryId: 3, categoryName: "Eye" },
    { subCategoriesList: ['Badges and dentures', 'Cerezens', 'Dental implants', 'Cerezens'], categoryId: 4, categoryName: "Ayurvedic" }
  ]
目前,我正在使用类似的内容。这仅适用于categoryName属性。我想这是修改的类别列表以及

this.statesWithFlags.filter(v => v.categoryName.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))

检查
子类别列表中的一些
是否有您搜索的字符串,或者
类别名称是否有:

const termLower = term.toLowerCase();
this.statesWithFlags.filter(v => (
  v.subCategoriesList.some(subCat => subCat.toLowerCase().includes(termLower))
  || v.categoryName.toLowerCase().includes(termLower)
))
  .slice(0, 10);

什么是
术语
以及预期输出是什么?感谢您的关注@brk我找到了下面的答案