【发布时间】:2022-12-05 18:38:25
【问题描述】:
我有一个输入,可以是街道、邮政编码、城市或它们的组合。我想过滤包含这些字段中任何字符串的对象数组。
getFilterCentersSuggestions(term: string) {
term = term.toLowerCase();
return this.listOfCenters.filter((c) => c.city.toLowerCase().includes(term) || c.postalCode.toLowerCase().includes(term) || c.province.toLowerCase().includes(term));
}
如果输入只有一个术语,则此代码有效,但如果例如输入是“城市邮政编码”,则它不起作用......
有没有什么方法可以直接过滤对象字段,或者我必须拆分输入并在过滤器内部制作一个过滤器?
例子:
大批:
[
{
id: "1",
city: "city1",
street: "street1",
postalCode: "postalCode1"
},
{
id: "2",
city: "city1",
street: "street2",
postalCode: "postalCode2"
},
{
id: "3",
city: "city2",
street: "street3",
postalCode: "postalCode3"
},
]
输入 1:“城市 1 邮政编码 1”
预期结果 1:id == 1 的对象
输入 2:“城市1”
预期结果 1:id == 1 && id == 2 的对象
【问题讨论】:
-
在数组上拆分和过滤数组。许多骗子
-
你能举一个输入的例子吗?它应该作为输出返回什么?谢谢
标签: javascript arrays filter