带有或结果的javascript动态过滤器
我有一个包含多个字段的对象数组,即带有或结果的javascript动态过滤器,javascript,Javascript,我有一个包含多个字段的对象数组,即 Person { name: string; age: number; addressLines: string[]; }[]; 我也有动态搜索参数,即 parameters: ['mary', 'oregon'] //may be a longer/shorter array 假设我的输入是: [ { name: 'john mark', age: '29', addressLines: ['566 long street
Person
{
name: string;
age: number;
addressLines: string[];
}[];
我也有动态搜索参数,即
parameters: ['mary', 'oregon'] //may be a longer/shorter array
假设我的输入是:
[
{ name: 'john mark', age: '29', addressLines: ['566 long street', 'oregon']},
{ name: 'williams', age: '30', addressLines: ['oregon']},
{ name: 'moore mary', age: '40', addressLines: ['street 61', 'salt lake']}
]
我的输出应该是:
[
{ name: 'john mark', age: '29', addressLines: ['566 long street', 'oregon']}, // oregon
{ name: 'moore mary', age: '40', addressLines: ['street 61', 'salt lake']} //mary
]
如何使用filter方法实现这一点?提前谢谢。您可以这样做:
典型人物=
{
名称:字符串;
年龄:人数;
addressLines:字符串[];
}[];
警察人数:人=[
{姓名:'john mark',年龄:29岁,地址:['566 long street','oregon']},
{姓名:'williams',年龄:30岁,地址:['oregon']},
{姓名:'moore mary',年龄:40岁,地址:['street 61','salt lake']}
]
常量参数=['mary','oregon']
const foundPersons=personArray.filter((person)=>{
设匹配=假
parameters.forEach((param)=>{
//检查名称是否匹配
如果(person.name.includes(param))匹配=true;
//检查地址是否匹配
person.addressLines.forEach((addressPart)=>{
如果(addressPart.includes(param))匹配=真;
})
//检查年龄是否匹配
如果(person.age==param)匹配=true;
})
回报匹配
})
看到它在行动吗
PS:根据给定的参数,一切都匹配