javascript - Why are the object values getting pushed into the array 3 times? -


i have simple object array pushing object 2 fields: bucketname , date. problem values getting pushed thrice array. please me.

js:

sortbucket: function(bucketlist) {     var counter, j = 0;     var str = "aws-billing-csv";     console.log("bucket list :: ", bucketlist);      bucketlist.foreach(function(bucket, index) {         (function(bucketid) {             var bucketobj = {};             // console.log("bucket id :: ",bucketid);             s3client.listobjects(params = {bucket: bucketid }, function(err, data) {                 var csvbucketarr = [];                 if (err) {                     document.getelementbyid('status').innerhtml = 'could not load objects ' + bucketid;                 }                 else{                             //console.log("bucket data "+index+" :: ",data);                     data.contents.foreach(function(content,contentindex){                         var filekey = content.key;                         if(filekey.search(str) != -1) {                             // console.log("filekey["+bucketid+"] "+contentindex+" :: ",filekey + "  date :: " ,content.lastmodified);                             bucketobj[filekey] = {                                 lastmodified    : content.lastmodified,                                 bucketname      : bucketid                             }                             if(!jquery.isemptyobject(bucketobj)){                                 csvbucketarr.push(bucketobj);                             }                         }                     });                     csv = csvbucketarr;                   }                   if(csvbucketarr.length!==0)                       console.log("csvbucketarr :: ",csvbucketarr));                   });              }(bucket.bucketname));             // console.log("bucket " + index + " :: ", bucket);           });        }, 

you pushing same object array in each iteration of:

data.contents.foreach(function(content,contentindex){...}); 

so, many times .foreach() loop iterates, end pushing exact same bucketobj object csvbucketarr array.

if want each iteration of .foreach() put new , different bucketobj object array, need create new object each time inside loop this:

sortbucket: function(bucketlist) {     var counter, j = 0;     var str = "aws-billing-csv";     console.log("bucket list :: ", bucketlist);      bucketlist.foreach(function(bucket, index) {         (function(bucketid) {             // console.log("bucket id :: ",bucketid);             s3client.listobjects(params = {bucket: bucketid }, function(err, data) {                 var csvbucketarr = [];                 if (err) {                     document.getelementbyid('status').innerhtml = 'could not load objects ' + bucketid;                 }                 else{                             //console.log("bucket data "+index+" :: ",data);                     data.contents.foreach(function(content,contentindex){                         // ===> create new bucketobj object                         var bucketobj = {};                         var filekey = content.key;                         if(filekey.search(str) != -1) {                             // console.log("filekey["+bucketid+"] "+contentindex+" :: ",filekey + "  date :: " ,content.lastmodified);                             bucketobj[filekey] = {                                 lastmodified    : content.lastmodified,                                 bucketname      : bucketid                             }                             if(!jquery.isemptyobject(bucketobj)){                                 csvbucketarr.push(bucketobj);                             }                         }                     });                     csv = csvbucketarr;                   }                   if(csvbucketarr.length!==0)                       console.log("csvbucketarr :: ",csvbucketarr));                   });              }(bucket.bucketname));             // console.log("bucket " + index + " :: ", bucket);           });        }, 

Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -