如何过滤和检查匹配条件与多个字段传入字符串;我有如下要求:
{
name: "abc",
email: "",
phone: "123456",
match: "phone"
}
在这种情况下,我必须过滤数组,并在响应中获得匹配的电话对象,我有一个如下所示的数组
[{name: "abc", email: "abc@gmail.com",phone:"123456"}, {name: "abc", email: "abc@gmail.com", phone:"1236"}, {name: "pqr", email: "pqr@gmail.com", phone:"123456"} ]
在这种情况下,我的预期输出如下所示
[{name: "abc", email: "abc@gmail.com",phone:"123456"}, {name: "pqr", email: "abc@gmail.com", phone:"123456"} ]
注意:我的过滤条件将根据匹配字符串进行更改
1st request type
{
email: "pqr@gmail.com",
phone: "123456",
match: "phone,email"
}
Result:
[{name: "pqr", email: "pqr@gmail.com", phone:"123456"}]
2nd request type
{
name: "abc",
email: "abc@gmail.com",
phone: "1236",
match: "phone,email"
}
Result:
[ {name: "abc", email: "abc@gmail.com", phone:"1236"}]
姓名、电话或电话或电子邮件或仅姓名、电子邮件、电话或姓名
在这种情况下,我必须基于匹配字符串来操作过滤器
3条答案
按热度按时间68bkxrlz1#
尽管我不能100%理解你的问题,但我相信下面的代码可以帮助你。
rslzwgfq2#
您可以定义函数
filterArr(arr, cond)
,该函数可用于测试condition.match
属性指定的字段上的每个条件,如下所示:nkkqxpd93#
据我所知,您希望根据filter对象的
match
属性中可用的filterObject
属性从数组中筛选出对象。如果我的理解是正确的,您可以借助
Array.filter()
方法和Array.every()
现场演示**:**