1

同じJSONオブジェクト内の他のデータを使用してJSONオブジェクト内の特定のデータを選択することは可能ですか?MySQLに似ています。例えば:

myObj = {"elements" : [ { "name" : "Hydrogen", "symbol" : "H" }, { "name" : "Silver", "symbol" : "Ag" }]};

記号が「H」の「水素」を選びたい。このようなものを入れる代わりに:

document.getElementByID("TEST").innerHTML = myObj.elements[0].name;

前もって感謝します。

4

2 に答える 2

1

あなたはあなたのためにそれをするための関数を定義することができます。

document.getElementByID("TEST").innerHTML = findNameBySymbol(myObj.elements, 'H');

function findNameBySymbol(elements, symbol) {
  for (var i = 0; i < elements.length; i += 1) {
    if (elements[i].symbol === symbol) {
      return elements[i].name;
    }
  }
}

さらに良いことに、データの構造を制御できる場合は、次のように構造化できます。

myObj = {"H": "Hydrogen", "Ag": "Silver"};

次に、ルックアップはと同じくらい簡単myObj['H']です。

于 2012-09-26T03:36:28.533 に答える
1

ほとんどの場合、TylerHoilenのソリューションで十分です。非常に大きなデータがある場合は、データをハッシュテーブルに変換してみてください。これにより、要素への高速アクセスが可能になります。すべての要素に一意の記号があることを確認してください。

function convertToHash(data) {
  var hash = {};
  for (var i = 0; i < data.length; i++) {
    hash[data[i].symbol] = data[i].name;
  }
  return hash;
}

var hash = convertToHash(myObj.elements);
document.getElementByID("TEST").innerHTML = hash["H"];
于 2012-09-26T03:49:25.963 に答える