在我的NodeJS应用程序中,我在jade中获得了一个JSON对象(效果很好)。在这里,我尝试仅收集(srcTweets)相关数据,并将其返回到新的JSON对象(stgTweets)中。我将其用于动态表。
在这里,我先使用以下脚本:
var srcTweets = [];
var srcTweets = !{JSON.stringify(tweets)};
var aantalSrcTweets = srcTweets.length;
//Loop throug all tweets and collect all relevant elementen from srcTweet:
var stgTweet = {}
var stgTweets = [];
console.info('----------START LOOP--------------------');
for(var i = 0; i < 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 i get the same items
console.info(stgTweets[0]);
console.info(stgTweets[1]);
当我打印数组“ stgTweet [0]和stgTweet [1]”的不同索引号时,将显示相同的数据。我试图通过在for循环中记录元素来弄清楚,但这看起来还不错。而且我真的不知道在哪里可以找到更好的选择。
我如何用不同的对象而不是同一对象填充数组,以上脚本中发生了什么。
这是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...
}
]
原因是因为您要对数组中的每个元素重复使用同一对象,并且对象是通过Javascript中的引用分配的,所以stgTweets[0] === stgTweets[1]
。
相反,您可以做的是在循环内移动stgTweet
声明(或如下所示直接重新分配值),以便为每个数组元素创建一个新对象:
var stgTweets = new Array(aantalSrcTweets);
for (var i = 0; i < 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
};
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句