我有一个包含两个字段filter1
并filter2
具有数组形式的值的对象
let filter = {filter1:["mine","your"]: filter2:["C","D"]}
//值不固定
数据是对象数组的形式
let data = [
{ id:1, filter1:["mine"], filter2:["E","C"]},
{ id:2, filter1:["mine"], filter2:["E","C","F"]},
{ id:3, filter1:["your"], filter2:["C"]},
{ id:3, filter1:["your"], filter2:["D","C"]},
{ id:5, filter1:["other"], filter2:["F"]},
...
]
我必须过滤掉那些在特定键中存在任何一个字段的对象,例如,它filter
是否{filter1:["mine"]: filter2:["F","D"]}
会首先在数据对象的 filter1 中搜索 filter1 的任何元素,然后再搜索 filter2 中存在的任何元素数据对象的filter2,如果找到任何一个对象,则返回该对象
few example
结果为 {filter1:["mine"]: filter2:["F","D"]}
result = [
{ id:1, filter1:["mine"], filter2:["E","C"]}, //since filter1 "mine"
{ id:2, filter1:["mine"], filter2:["E","C","F"]}, //since filter1 "mine"
{ id:3, filter1:["your"], filter2:["D","C"]}, //since from "F" and "D" from filter2 "D" is present
{ id:5, filter1:["other"], filter2:["F"]}, //since "F" from filter2 is present
]
结果为 {filter1:["your"]: filter2:["F","G"]}
result = [
{ id:2, filter1:["mine"], filter2:["E","C","F"]}, //since "F" from filter2 is present
{ id:3, filter1:["your"], filter2:["D","C"]}, //since filter1 is "your"
{ id:5, filter1:["other"], filter2:["F"]}, //since "F" from filter2 is present
]
结果为 {filter1:[]: filter2:["D"]}
result = [
{ id:3, filter1:["your"], filter2:["D","C"]}, //since filter2 has "D"
]