我想在对象中使用js搜索,但有一些功能。我明确地回答了这个问题。
[
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
},
{
"foo" : "dolor",
"bar" : "amet"
}
]
这很好,但我想搜索sıt
或sit
,结果将在下方。
[
{
"foo" : "bar",
"bar" : "sit"
}
]
我该怎么做?
答案 0 :(得分:0)
如果使用search()方法而不是indexOf(),则可以使用正则表达式执行此操作:
var objects = [{
"foo": "bar",
"bar": "sit"
}, {
"foo": "lorem",
"bar": "ipsum"
}, {
"foo": "dolor",
"bar": "amet"
}];
var results = [];
var toSearch = /s(i|ı)t/;
for (var i = 0; i < objects.length; i++) {
for (var key in objects[i]) {
if (objects[i][key].search(toSearch) != -1) {
results.push(objects[i]);
}
}
}
结果是包含要匹配的字符串的所有对象。这是否与你正在寻找的一致?