javascript - Same JSON ojbects in array when receiving differnt array elements -


in nodejs app json object within jade (which works fine). here in tried collect(srctweets) relevant data , return in new json object(stgtweets). use dynamic table use.

here fore use following scrip:

    var srctweets = [];     var srctweets = !{json.stringify(tweets)};     var aantalsrctweets = srctweets.length;      //loop throug tweets , collect relevant elementen srctweet:     var stgtweet = {}     var stgtweets = [];     console.info('----------start loop--------------------');     for(var = 0; < aantalsrctweets; i++){         console.info(i);          stgtweet.id = srctweets[i]._id;         stgtweet.userid = srctweets[i].user.id;         stgtweet.userfollowercount = srctweets[i].user.followers_count;         stgtweet.userfriendcount = srctweets[i].user.friends_count;         stgtweet.userfavouritescount = srctweets[i].user.favourites_count;         stgtweet.text = srctweets[i].text;         stgtweet.coordinates = srctweets[i].coordinates;         stgtweet.userlocation = srctweets[i].user.location;          stgtweets[i] = stgtweet;          console.info(stgtweets[i]);         console.info(i);     }     console.info('----------end loop--------------------');      //here same items     console.info(stgtweets[0]);     console.info(stgtweets[1]); 

when print different index numbers of array "stgtweet[0] , stgtweet[1]" same data showed. tried figure out logging elements in loop , looks fine. , realy don't know futher.

how fill array different objects in stead of same object, happens in script above.

here example of srctweets:

[    object   {       _id="56e19eb1ac5e621e0797c423",       truncated=false,       text="@model_symphony nu ja,       s... prima energiequelle...",       more...    },    object   {       _id="56e1a73eac5e621e0797c424",       truncated=false,       text="vandaag aangekondigd doo...",       more...    },    object   {       _id="56e1a7b4ac5e621e0797c425",       truncated=false,       text="mooi bedrijfsbezoek aan ...",       more...     } ] 

the reason because you're reusing same object every element in array , objects assigned reference in javascript, stgtweets[0] === stgtweets[1].

what instead move stgtweet declaration inside loop (or re-assign value directly shown below) new object created each array element:

var stgtweets = new array(aantalsrctweets); (var = 0; < aantalsrctweets; i++){   stgtweets[i] = {     id: srctweets[i]._id,     userid: srctweets[i].user.id,     userfollowercount: srctweets[i].user.followers_count,     userfriendcount: srctweets[i].user.friends_count,     userfavouritescount: srctweets[i].user.favourites_count,     text: srctweets[i].text,     coordinates: srctweets[i].coordinates,     userlocation: srctweets[i].user.location   }; } 

Comments