我有很多类似的对象,像这样;
[
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
},
{
"foo" : "dolor",
"bar" : "amet"
}
]
我想用关键字搜索这些对象的值(而不是键),并返回在任何值中都包含关键字的对象数组。
因此,例如,使用关键字r
,我将获得所有对象(对象#1中的“ baR”,对象#2中的“ loRem”和对象#3中的“
doloR”)。使用关键字lo
,我将得到对象2和3(“ LOrem”和“ doLOr”),使用关键字,我将得到对象a
1和3(“ bAr”和“
Amet”)。foo
但是,使用关键字,我会得到一个空数组,因为“ foo”是键,并且在任何值中都没有找到(与“ bar”不同)……您明白了。
我将如何去做呢?在此先多谢!
像这样:
var objects = [
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
},
{
"foo" : "dolor",
"bar" : "amet"
}
];
var results = [];
var toSearch = "lo";
for(var i=0; i<objects.length; i++) {
for(key in objects[i]) {
if(objects[i][key].indexOf(toSearch)!=-1) {
results.push(objects[i]);
}
}
}
结果数组将包含所有匹配的对象。
如果搜索“ lo”,结果将类似于:
[{ foo="lorem", bar="ipsum"}, { foo="dolor", bar="amet"}]
新版本-添加了修整代码,以确保结果集中没有重复的代码。
function trimString(s) {
var l=0, r=s.length -1;
while(l < s.length && s[l] == ' ') l++;
while(r > l && s[r] == ' ') r-=1;
return s.substring(l, r+1);
}
function compareObjects(o1, o2) {
var k = '';
for(k in o1) if(o1[k] != o2[k]) return false;
for(k in o2) if(o1[k] != o2[k]) return false;
return true;
}
function itemExists(haystack, needle) {
for(var i=0; i<haystack.length; i++) if(compareObjects(haystack[i], needle)) return true;
return false;
}
var objects = [
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
},
{
"foo" : "dolor blor",
"bar" : "amet blo"
}
];
function searchFor(toSearch) {
var results = [];
toSearch = trimString(toSearch); // trim it
for(var i=0; i<objects.length; i++) {
for(var key in objects[i]) {
if(objects[i][key].indexOf(toSearch)!=-1) {
if(!itemExists(results, objects[i])) results.push(objects[i]);
}
}
}
return results;
}
console.log(searchFor('lo '));
对于我当前的项目,我必须搜索ArrayList of ZipCode对象,以便找到距离用户输入的int zip最远的ZipCode。 下面是编写我遇到问题的方法的说明:public ZipCode findfurtwest(int-pZip)-查找距离提供的邮政编码最远的ZipCode。如果未找到邮政编码,则返回null。例如,距离邮政编码75234最远的是ADAK,AK 99546。 在我的代码
我使用的是Spring Data JPA。
问题内容: 我的应用程序中有一个JSON字符串/对象。 我的应用程序中有一个过滤器框,当我在该框中输入名称时,我们必须过滤该对象并显示结果。 例如,如果用户键入“名称”并点击搜索,那么我们必须在JSON对象中搜索全名并返回数组,就像MySQL搜索一样。 我的问题是用字符串过滤json对象并返回数组。 问题答案: 您可以遍历数组并找到匹配项:
本文向大家介绍在C#中搜索SortedList对象,包括了在C#中搜索SortedList对象的使用技巧和注意事项,需要的朋友参考一下 要在SortedList对象中进行搜索,代码如下- 示例 输出结果 这将产生以下输出- 示例 让我们看另一个例子- 输出结果 这将产生以下输出-
我需要在数组上使用二进制搜索来找到它们的索引。我能够做到这一点,但是我现在需要使用数组类型为Integer而不是int的对象。 这里有一个问题:“为binarySearch方法提供代码,记住它接收的参数是Object type Object,如果其中任何一个用于调用compareTo方法,则必须首先将其强制转换为可比或原始对象类型。”
问题在于从搜索函数返回的MyClass对象(mc)。 我跟踪到Search()并确保“r- “退货”有什么问题吗 谢啦! 我有点困惑。。我可以改为“数据类型BST::搜索(常量字符串名称)”而不是“数据类型*BST::搜索(常量字符串名称)”。。。。编译器似乎无法通过。返回NULL将有一些问题。。。 但是我尝试了你的方法来更改DataType*没有de::getIthem()它仍然有错误.....