Javascript |按JSON特定键值搜索JSON数组

时间:2014-11-22 12:34:49

标签: javascript arrays json indexing

如果存在具有特定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}
 }
}

3 个答案:

答案 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);