0

我创建 JSON 数组,如jarray.

它有 id 和相应的值。

我还有另一个变量 arr

现在,我如何使用 id 从 json 数组中获取值的值。

这意味着如果我需要jarray使用 var检查id=04

如果我发现 04 我需要像 Apple 这样的特定 id 的值作为输出。

如何在 Json 数组中使用 If 条件?

var jarray=[{"id":"04","value":"Apple"},{"id":"13","value":"orange"}];
var id=04;
4

4 回答 4

1

这将返回 id 为 "04" 的所有项目的数组:

var matches = jarray.filter(function(a){return a.id==id;});

如果你确定只有一个,你可以拿matches[0];

请注意,这适用于作为"04"或提供的 id 04

为了确保与旧浏览器(可能没有过滤器功能)的兼容性,请参阅

于 2012-07-12T13:14:28.127 回答
0

像这样:

for (i=0;i<jarray.length;i++)
    {
        var tempValue = jarray[i];
        if (tempValue["id"] == id)
            alert( "value is : " + tempValue["value"] );
    }
于 2012-07-12T13:21:05.103 回答
0
var i=0;
while(i<jarray.length) {
  if(jarray[i].id==id) {
    var val=jarray[i].value;
    break;
  }
}
于 2012-07-12T13:15:31.840 回答
0

您可以使用Underscore 的 _.find` 方法之类的方法,也可以编写自己的方法,这可能更适合您的情况:

function findId(id, arr, member) {
  for(i in arr) {
    // You could use === here depending on your needs
    if(arr[i]['id'] == id) {
      return member === undefined ? arr[i] : arr[i][member];
    }
  }
  return false;
}
findId('04', jarray, 'value'); // Apple
于 2012-07-12T13:15:49.673 回答