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
   }
]

materialID値を持つ要素を見つける最短の方法を知りたいです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 に答える