1

我关注的朋友喜欢 json 数组

[
   {
      "Rate":100.0,
      "MaterialID":"BOLT",
      "BrandName":"",
      "Description":"",
      "Unit":"KG",
      "TokenNumber":2
   },
   {
      "Rate":null,
      "MaterialID":"PLYWOOD",
      "BrandName":"",
      "Description":"",
      "Unit":"FT",
      "TokenNumber":2
   },
   {
      "Rate":null,
      "MaterialID":"SCREW 1.5 INCH",
      "BrandName":"",
      "Description":"",
      "Unit":"KG",
      "TokenNumber":2
   }
]

我想知道找到具有materialIDvalue的元素的最短方法PLYWOOD
我可以使用for循环来做到这一点。但我想知道一些捷径,比如

var unit = jsonArray[<whiere materialID == 'PLYWOOD']['Unit'];

jQuery如果需要,您可以使用。

4

3 回答 3

5

你可以使用 $.grep

http://api.jquery.com/jQuery.grep/

于 2012-09-01T17:15:17.310 回答
2

jQuery 不是必需的,所以你可以这样做:

function findItem(arr, key, value) {
    for (var i = 0; i < ARR.length; i++) {
       if (arr[i][key] === value) {
           return(i);
       }
    }
    return(-1);
}

var plywoodIndex = findItem(data, "MaterialID", "PLYWOOD");
if (plywoodIndex !== -1) {
    // do something with the plywoodIndex object here
}
于 2012-09-01T18:06:55.643 回答
1

正如 Raghaw 所建议的那样。我找到了做我的工作的方法。我设计了以下函数,可以返回具有指定 materialID 的对象。

假设:materials是数组

function getMaterialFromArray(materialID) {
    return $.grep(materials, function (n, i) {
        return(n.MaterialID == materialID);
    })[0];
}
于 2012-09-01T17:54:46.243 回答