Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过ID在JSON中查找我的对象_Javascript_Jquery_Json - Fatal编程技术网

Javascript 通过ID在JSON中查找我的对象

Javascript 通过ID在JSON中查找我的对象,javascript,jquery,json,Javascript,Jquery,Json,所以我有这种JSON 我需要为所需的键轻松提供值。 例如: 30将产生=>“沙龙” 5将产生=>“Jay” 等等。正确的方法是什么?试试: var searchId=“30”; for(var i=0;i

所以我有这种JSON

我需要为所需的键轻松提供值。 例如:

  • 30将产生=>“沙龙”
  • 5将产生=>“Jay”
等等。正确的方法是什么?

试试:

var searchId=“30”;
for(var i=0;i
迭代数组并检查ID是否匹配

var searchId = "30";
for(var i = 0; i < json.length; i++)
{
    if(json[i].ID == searchId)
    {
        // Found it.
        //

        break;
    }
}

如果ID是唯一的,并且您需要经常这样做,那么您可能需要将集合转换为以ID为键的键/值对

function getById(arr, id) {
   return arr.filter(function(o) { return o.ID == id });
}

现在您可以简单地使用ID来查找对象

var byId = data.reduce(function(res, obj) {
    res[obj.ID] = obj;
    return res
}, {});

你可以写一些东西来循环

var target = byId["30"];
可以通过一行代码在集合中找到对象

参考资料:

代码:

var data = [ {"ID":"5","Name":"Jay"},{"ID":"30","Name":"Sharon"}, {"ID":"32","Name":"Paul"} ];
for(var i in data){
    if(data[i]["ID"] == 30){
      return data[i]["Name"];
    }
}

如果它们没有排序,除了进行线性搜索外别无其他方法。查看每个对象,直到找到要查找的对象。请参阅本文:您可以从If语句中返回,以避免检查其余对象array@bfavaretto-似乎是个好主意,而仅仅是归还援助就可以做到这一点。
var target = byId["30"];
var data = [ {"ID":"5","Name":"Jay"},{"ID":"30","Name":"Sharon"}, {"ID":"32","Name":"Paul"} ];
for(var i in data){
    if(data[i]["ID"] == 30){
      return data[i]["Name"];
    }
}
var people = [
    {"ID":"5","Name":"Jay"},
    {"ID":"30","Name":"Sharon"},
    {"ID":"32","Name":"Paul"}
];

_.find(people, function(person) { return person.ID === '5'; });