Javascript 角8多重滤波器

Javascript 角8多重滤波器,javascript,arrays,typescript,angular7,Javascript,Arrays,Typescript,Angular7,我试图用多个过滤器过滤任何数组 示例阵列: array = [ {"market":"europe","name":"john","Preferences":["1",2"]}, {"market":"asia","name":"mike","Preferences":["2"]}, {"market":"europe","name":"tom","Preferences":["1"]} ] 过滤器值的绑定: private market private name private

我试图用多个过滤器过滤任何数组

示例阵列:

array = [
  {"market":"europe","name":"john","Preferences":["1",2"]},
  {"market":"asia","name":"mike","Preferences":["2"]},
  {"market":"europe","name":"tom","Preferences":["1"]}
]
过滤器值的绑定:

private market
private name
private preferences: [] = []
功能如下:

let filteredResult: any = this.array.filter(u => 
  u.market == this.market && u.name == this.name && u.Preferences == this.preferences)
如果不使用内部数组首选项进行过滤,该函数将正常工作。但是,当我引入第三个参数首选项时,函数返回null

样本过滤器值:市场:欧洲,首选项:[1

知道哪里做错了吗

提前感谢您,因为您的首选项变量包含一个数组,将两个不同的数组与===

将始终返回false,因为这两个数组是两个不同的内存引用


console.log[]=[]谢谢你的帮助。我想返回一个新数组,它将与所有筛选器匹配…我尝试使用let filteredResult:any=this.array.filteru=>u.market==this.market&&u.name==this.name&&u.Preferences.every==this.Preferences.every,但我收到错误类型错误:无法读取null的属性'every'。我正在使用吗正确的语法?@AbdalRahmanFarag是一个method not属性,您需要调用该方法,并且在使用任何数组方法之前,您需要检查您操作的值是否为array
  []  === []
filteredResult= this.array.filter(u => 
  u.market == this.market && u.name == this.name &&
  u.Preferences && u.Preferences.every(el=>this.preferences.indexOf(el) > -1)
)