Reputation: 107
I am new to JavaScript, tried below code and not able to get it. I have gone through many other post but didn't work.
Output: Check if AUTO damage is present. If Yes, get count and display First & Last for the same.
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>
Upvotes: 1
Views: 86
Reputation: 4349
First myObj.Initial.claim
is an array not an object, it's better to name it myArr
instead of myObj
.
Before accessing an object property which can be present or not, you have to check for it before doing that using myObj.hasOwnProperty
method.
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>
Upvotes: 2
Reputation: 2146
You could use hasOwnProperty to check if auto exists.
for example:
myObj.forEach(function(val) {
if (val.damage.hasOwnProperty('auto') && val.damage.auto) {
console.log(val.first, val.last);
}
});
Upvotes: 0
Reputation: 1894
You can use the hasOwnProperty
function to check whether the damage is auto or not, check the below code snippet.
'use strict';
var claims = {
"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 result = [];
for (var i = 0; i < claims.Initial.claim.length; i++) {
if (claims.Initial.claim[i].damage.hasOwnProperty('auto')) {
result.push(claims.Initial.claim[i]);
}
}
console.log(result);
var x = '';
for (var i = 0; i < result.length; i++) {
x += result[i].first + "<br>";
x += result[i].damage.auto + "<br>";
}
document.getElementById("demo").innerHTML = x;
<p id="demo"></p>
Upvotes: 0