【发布时间】:2016-11-10 03:21:02
【问题描述】:
我有一个需要在其中进行通配符过滤的对象数组。 例如,我的对象可能包含如下内容:
var a = [
{
"type":"metals",
"SN":"SN0000000000"
},
{
"type":"wood",
"SN":"SN0000000001"
}
];
我的正常标准过滤功能是这样的:
var filtered = a.filter(function(el) {
//normal checkbox criteria filter for selectedtype
if(!(self.serialno)){
return el.type == self.selectedType
}
//wildcard text filtering from textfield
else{
return typeof el.SN == self.serialno;
}
});
打印出来的结果是这样的:
console.log(filtered);
对于我使用复选框标准选择的普通标准过滤器(“类型”),我可以取回我选择的标准类型(作为对象数组),但在“SN”的情况下它调用基于文本的通配符搜索,我无法这样做。
例如,如果我要在通配符文本字段中键入“00”,该函数应该返回一个对象数组,其中“SN/serialNo”包含“00”(在上面的例子,var a 中的两个对象)。
PS:
self.serialno 是从文本框中检索到的字符串。
el.SN 是过滤函数返回的对象数组。
更新:
运行此代码:
console.log(self.serialno.test(el.SN));
返回我:
【问题讨论】:
-
typeof el.SN将返回el.SN的类型,即字符串"string"。这可能不是你想要的?如果不发布相关代码,这个问题可能无法回答。 -
尝试使用正则表达式,如
return self.serialno.test(el.SN);。 -
@AndyRay 您需要什么相关代码?我需要的是返回我使用通配符搜索的对象结果。
标签: javascript json wildcard