Javascript (node.js): Iterating through nested objects and getting undefined -


i running code using node on command line. current issue right line console.log(checkparam[key].stat); returning undefined rather value.

in following code trying display values set of properties within object nested within object. problem getting undefined because "stat" var being recognized javascript literal stat property in lower nested object rather value of stat should in for(var stat in checkparam[key]) loop.

var viewsheet = function(name, checkparam) { for(var key in checkparam) {     if(checkparam[key].playerfirstname.tolowercase() === name.tolowercase()) {         for(var stat in checkparam[key])         {                 console.log(checkparam[key].stat);         }         //return checkparam[key];     } } 

}; know stat in loop mentioned above correctly pointing property key in lower nested object because can console.log fine , display key values. don't understand correct process javascript recognize want log specific value.

also know questions on stack should based on single specific problems, if willing answer second question, using objects incorrectly here? way javascript objects seems me python dictionaries or perl hashes , therefor keep thinking it's ok nest data in same way in languages.

here entire piece of code context.

//--modules  //readline sync cli prompting var rlprompt = require('readline-sync');  //--declare objects // var fverparty = new object();  //--define funcs //  //list function var list = function (param) {     console.log("party members: ")     (var key in param) {         console.log(param[key].playerfirstname);     } }  //add function var add = function (playerfirstname, list, playerlastname, playerrace, playerclass) {     list[playerfirstname] = {         playerfirstname: playerfirstname,         playerlastname: playerlastname,         playerrace: playerrace,         playerclass: [playerclass]     }; }  //view function var viewsheet = function(name, checkparam) {     for(var key in checkparam) {         if(checkparam[key].playerfirstname.tolowercase() === name.tolowercase()) {             for(var stat in checkparam[key])             {                     console.log(checkparam[key].stat);             }             //return checkparam[key];         }     } };   //--main //  //-init  var adding = true;  //-run  //add characters party. console.log("let's add people list.") while (adding){      add(rlprompt.question("please enter first name: "), fverparty, rlprompt.question("please enter last name: "), rlprompt.question("please enter race: "), rlprompt.question("please enter class: "));     if (rlprompt.question("any key continue, (q/q) quit.").tolowercase() == "q") {         adding = false;     } }  //list party members list(fverparty);  //view character sheets viewsheet(rlprompt.question("enter name view character sheet: "), fverparty); 


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -