Recursive function not returning sum of object values

<p>Why <code>sum</code> is <code>undefined</code>. What am I doing wrong?</p><div class="snippet" data-lang="js" data-hide="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"><br /><code>var testData1 = [{<br /> "name": "Doctors",<br /> "category": "Doctors",<br /> "subCategory": [{<br /> "name": "Likes",<br /> "category": "Likes",<br /> "subCategory": [{<br /> "name": "Visit",<br /> "category": "Visit",<br /> "subCategory": [{<br /> "name": "Charges",<br /> "category": "Charges",<br /> "subCategory": null,<br /> "val": 30<br /> }]<br /> }]<br /> }, {<br /> "name": "Dislikes",<br /> "category": "Dislikes",<br /> "subCategory": [{<br /> "name": "Quality",<br /> "category": "Quality",<br /> "subCategory": [{<br /> "name": "Appointment",<br /> "category": "Appointment",<br /> "subCategory": null,<br /> "val": 50<br /> }, {<br /> "name": "Care",<br /> "category": "Care",<br /> "subCategory": null,<br /> "val": 70<br /> }, {<br /> "name": "Attentive ",<br /> "category": "Attentive ",<br /> "subCategory": null,<br /> "val": 90<br /> }]<br /> }]<br /> }, {<br /> "name": "Neutral",<br /> "category": "Neutral",<br /> "subCategory": [{<br /> "name": "Professional ",<br /> "category": "Professional ",<br /> "subCategory": [{<br /> "name": "Ease",<br /> "category": "Ease",<br /> "subCategory": null,<br /> "val": 50<br /> }, {<br /> "name": "Competent ",<br /> "category": "Competent ",<br /> "subCategory": null,<br /> "val": 40<br /> }, {<br /> "name": "Availability",<br /> "category": "Availability",<br /> "subCategory": null,<br /> "val": 80<br /> }]<br /> }]<br /> }],<br /> "index": 6<br />}, {<br /> "name": "Service",<br /> "category": "Service",<br /> "subCategory": [{<br /> "name": "Likes",<br /> "category": "Likes",<br /> "subCategory": [{<br /> "name": "Environment",<br /> "category": "Environment",<br /> "subCategory": [{<br /> "name": "Professionalism ",<br /> "category": "Professionalism ",<br /> "subCategory": null,<br /> "val": 50<br /> }, {<br /> "name": "Room",<br /> "category": "Room",<br /> "subCategory": null,<br /> "val": 30<br /> }, {<br /> "name": "Parking",<br /> "category": "Parking",<br /> "subCategory": null,<br /> "val": 20<br /> }]<br /> }, {<br /> "name": "Availability",<br /> "category": "Availability",<br /> "subCategory": [{<br /> "name": "Competent ",<br /> "category": "Competent ",<br /> "subCategory": null,<br /> "val": 30<br /> }]<br /> }]<br /> }, {<br /> "name": "Dislikes",<br /> "category": "Dislikes",<br /> "subCategory": [{<br /> "name": "Management",<br /> "category": "Management",<br /> "subCategory": [{<br /> "name": "Staff",<br /> "category": "Staff",<br /> "subCategory": null,<br /> "val": 50<br /> }, {<br /> "name": "Operations",<br /> "category": "Operations",<br /> "subCategory": null,<br /> "val": 70<br /> }]<br /> }, {<br /> "name": "Nurses",<br /> "category": "Nurses",<br /> "subCategory": [{<br /> "name": "Medicine",<br /> "category": "Medicine",<br /> "subCategory": null,<br /> "val": 30<br /> }]<br /> }]<br /> }, {<br /> "name": "Neutral",<br /> "category": "Neutral",<br /> "subCategory": [{<br /> "name": "Serving",<br /> "category": "Serving",<br /> "subCategory": [{<br /> "name": "Took long time",<br /> "category": "Took long time",<br /> "subCategory": null,<br /> "val": 50<br /> }, {<br /> "name": "Rude",<br /> "category": "Rude",<br /> "subCategory": null,<br /> "val": 40<br /> }, {<br /> "name": "Seated",<br /> "category": "Seated",<br /> "subCategory": null,<br /> "val": 80<br /> }]<br /> }]<br /> }],<br /> "index": 16<br />}];<br /><br />function addSum(data) {<br /> data.forEach(function(d, index) {<br /> if (Array.isArray(d.subCategory)) {<br /> return (0 + addSum(d.subCategory));<br /><br /> } else {<br /><br /> document.write('<pre>' + JSON.stringify(d.val, 0, 4) + '</pre>');<br /> return d.val;<br /> }<br /> });<br />}<br />var sum = addSum(testData1);<br />alert(sum);</code><br /></pre></div></div><br /><h2>Click here view more answers <a href="%20http://stackoverflow.com/questions/34525177/recursive-function-not-returning-sum-of-object-values">http://ift.tt/1YSbrWb</a></h2>

Nhận xét

Bài đăng phổ biến từ blog này

Align div to bottom of the page in bootstrap

Align elements inside an tag vertically

Javascript is unable to stop page loading