如果存在具有特定id值的密钥,我需要在JSON对象数组中进行搜索。如果存在,则返回它,如果不返回-1或其他
var array = [{'id': 1, 'name': 'xxx'},
{'id': 2, 'name': 'yyy'},
{'id': 3, 'name': 'zzz'}];
var searchValue --> id==1
应该是这样的吗?
function search_array(array,valuetofind) {
if array.indexof({'id': valuetofind}) != -1 {
return array[array.indexof({'id': valuetofind})]
} else {
return {'id': -1}
}
}
答案 0 :(得分:4)
如果存在匹配则返回对象,如果匹配则不返回-1。
function search_array(array,valuetofind) {
for (i = 0; i < array.length; i++) {
if (array[i]['id'] === valuetofind) {
return array[i];
}
}
return -1;
}
答案 1 :(得分:0)
如果您只是需要确保ID存在,请尝试:
function search_array(array, valuetofind) {
var exists = false;
for(i=0;i<array.length;i++) {
if(array[i].id == valuetofind) {
exists = true;
}
}
return exists;
}
我的方法可能是一个有点长的循环通过每个部分,但我检查,它的工作
search_array(array, 4) [False]
search_array(array, 1) [True]
答案 2 :(得分:0)
试试这个
search(nameKey, myArray){
for (var i=0; i < myArray.length; i++) {
if (myArray[i].name === nameKey) {
return myArray[i];
}
}
}
var array = [
{ name:"string 1", value:"this", other: "that" },
{ name:"string 2", value:"this", other: "that" }
];
var resultObject = search("string 1", array);