javascript - Array created by .push in a loop is the correct length but only pushing the last element on repeat -


i referencing global variable , parsing through push items onto stack , return stack used elsewhere. returned array correct length repeats items of last element.

var global = {     "param11": {         "param21": {             "param31": {                 "param4": "1",                 "param5": "2",                 "param6": "3",             },             "param32": {                 "param4": "4",                 "param5": "5",                 "param6": "6",              }         },         "param22": {             "param33": {                 "param4": "7",                 "param5": "8",                 "param6": "9",             }         }     },     "param12": {         "param23": {             "param34": {                 "param4": "10",                 "param5": "11",                 "param6": "12",             },             "param35": {                 "param4": "13",                 "param5": "14",                 "param6": "15",             }         }     } };  function getstack() {     var obj = {};     var stack=[];     var json = json.parse(global);     for(var param1 in json){         for(var param2 in json[param1]){             for(var param3 in json[param1][param2]){                     obj.item1 = json[param1][param2][param3][param4];                     obj.item2 = json[param1][param2][param3][param5];                     obj.item3 = json[param1][param2][param3][param6];                     stack.push(obj);             }         }     }     return stack; } 

returned value:

[     {"param4":"13", "param5":"14", "param6":"15"},     {"param4":"13", "param5":"14", "param6":"15"},     {"param4":"13", "param5":"14", "param6":"15"},     {"param4":"13", "param5":"14", "param6":"15"},     {"param4":"13", "param5":"14", "param6":"15"} ] 

with obj declared @ beginning of function, there's single object in existence. each iteration of loop change 1 object's properties. want create new {} object each iteration of inner loop.

for(var param1 in json){     for(var param2 in json[param1]){         for(var param3 in json[param1][param2]){             var obj = {};             obj.item1 = json[param1][param2][param3][param4];             obj.item2 = json[param1][param2][param3][param5];             obj.item3 = json[param1][param2][param3][param6];             stack.push(obj);         }     } } 

Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -