javascript - Angular 8 多重滤镜

标签 javascript arrays typescript angular7

我正在尝试使用多个过滤器过滤任何数组。

示例数组:

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([] === [])

如果您只想将那些元素包含在最终输出中,并且所有首选项都包含在其中,则需要根据所需的输出使用诸如 everysome 之类的方法与 this.preference 匹配,您需要 every,否则您需要使用 some

关于javascript - Angular 8 多重滤镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57764139/

相关文章:

javascript - 在 Material-UI TableCell 中格式化日期字符串

c# - 无法成功从数据库中删除记录

javascript - 如何使用此和(多个)动态括号表示法更改 vue 数据变量

c - 为什么我会出现段错误?

javascript - reduce 将数组合并为单个值

python - Numpy 迭代 3d 向量数组

typescript - 类型不可分配给类型 'IntrinsicAttributes & MoralisProviderProps'

javascript - 源有 2 个元素,但目标只允许 1 个。Typescript 扩展运算符

javascript - 如何在开发和生产模式下的jQuery ajax请求中设置不同的baseUrl路径?

javascript - 如何将 Node.js 变量传递到 Pug 脚本标记的内部?