我正在尝试使用多个过滤器过滤任何数组。
示例数组:
array = [
{"market":"europe","name":"john","Preferences":["1",2"]},
{"market":"asia","name":"mike","Preferences":["2"]},
{"market":"europe","name":"tom","Preferences":["1"]}
]
过滤器值的绑定(bind):
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)
没有使用内部数组(首选项)进行过滤,该功能可以正常工作。但是,当我引入第三个参数(Preferences)时,该函数返回 null。
示例过滤器值:(市场:欧洲,偏好:[“1”)
知道哪里做错了吗?
提前致谢
最佳答案
由于您的 preference
变量保存一个数组,因此使用 ===
比较两个不同的数组
[] === []
将始终返回false,因为这两个数组是两个不同的内存引用
console.log([] === [])
如果您只想将那些元素包含在最终输出中,并且所有首选项都包含在其中,则需要根据所需的输出使用诸如 every
或 some
之类的方法与 this.preference
匹配,您需要 every
,否则您需要使用 some
关于javascript - Angular 8 多重滤镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57764139/