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
Post a Comment