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

在大多数情况下,Tyler Hoilen 的解决方案已经足够好了。如果您有非常大的数据,您可以尝试将数据转换为哈希表,这将提供对元素的快速访问。只要确保每个元素都有一个独特的符号。

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 回答
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 回答