我是 JavaScript 的新手,尝试了下面的代码但无法获得它。我浏览了许多其他帖子,但没有用。
输出:检查是否存在 AUTO 损坏。如果是,则获取计数并显示 First & Last。
var myObj, i, x = "";
myObj = {
"Initial": {
"claim": [{
"first": "abc",
"last": "xyz",
"damage": {
"auto": true,
"manual": true
}
}, {
"first": "mne",
"last": "odc",
"damage": {
"manual": true
}
}, {
"first": "svc",
"last": "tre",
"damage": {
"auto": true
}
}, {
"first": "tre",
"last": "hdf",
"damage": {}
}]
}
}
var myObj = myObj.Initial.claim;
console.log(myObj);
for (i = 0; i < myObj.length; i++) {
x += myObj.first[i] + "<br>";
x += myObj.damage.auto[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
<p id="demo"></p>
最佳答案
首先myObj.Initial.claim
是一个数组而不是对象,最好将它命名为myArr
而不是myObj
。
在访问可能存在或不存在的对象属性之前,您必须先使用 myObj.hasOwnProperty
方法检查它。
var myObj, i, x = "";
myObj = {
"Initial": {
"claim": [
{
"first": "abc",
"last": "xyz",
"damage": {
"auto": true,
"manual": true
}
},
{
"first": "mne",
"last": "odc",
"damage": {
"manual": true
}
},
{
"first": "svc",
"last": "tre",
"damage": {
"auto": true
}
},
{
"first": "tre",
"last": "hdf",
"damage": {}
}
]
}
}
var myArr = myObj.Initial.claim;
console.log(myArr);
for (i = 0; i < myArr.length; i++) {
x += myArr[i].first + "<br>";
if(myArr[i].damage.hasOwnProperty("auto")) {
x += myArr[i].damage.auto + "<br>";
}
}
document.getElementById("demo").innerHTML = x;
<p id="demo"></p>
关于javascript - 使用 Javascript 根据其他键的存在显示 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184937/