是否可以使用同一JSON对象中的其他数据选择JSON对象中的某些数据。与MySQL类似。例如:
myObj = {"elements" : [ { "name" : "Hydrogen", "symbol" : "H" }, { "name" : "Silver", "symbol" : "Ag" }]};
我想选择符号为“H”的“氢”。而不是必须输入这样的东西:
document.getElementByID("TEST").innerHTML = myObj.elements[0].name;
提前谢谢。
答案 0 :(得分: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']
一样简单。
答案 1 :(得分: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"];