正确的方式来循环通过JSON对象

由于似乎没有人能够为我的问题find解决scheme ,所以我想以不同的方式提出我的问题:循环访问以下对象的游戏部分的正确方法是什么?

[ { "_id": "5710b0ddab8b724011705037", "username": "test", "name": "testuser", "__v": 0, "library": { "games": [ { "platform": [ "17", "94" ], "name": "Simcity", "id": "37620" }, { "platform": [ "146", "20" ], "name": "destiny", "id": "36067" } ], "platforms": [ { "name": "Xbox360", "id": "20" }, { "name": "PC", "id": "94" } ] } } ] 

这个对象是通过mongoose从MongoDB中取出的,全部发生在我的NodeJS应用程序的API部分:

 .get('/test', function(req, res){ User.findOne({"username": req.decoded.username}, function(err, user){ // trying to loop here }); }) 

我已经尝试了所有我find的东西,但是我无法完成这个工作,所以我想知道你用什么方法来做到这一点,而不是用我的(也许是错误的)方法和错误混淆视野。

用于… in循环浏览Javascript / JSON对象

 for (variable in object) {... } 

…在文档中

使用forEach循环通过Javascript / JSON数组

 arr.forEach(callback[, thisArg]) 

forEach文档

已更新答案:

与原始问题相比,您的编辑显着改变了数据的结构。

现在,你有一个数组 ,其中包含一个条目,其中有games library ,所以你引用它(假设user指向整个事物)作为user[0].library.games 。 例如:

 user[0].library.games.forEach(function(entry) { // Use `entry` here }); 
 var user = [{ "_id": "5710b0ddab8b724011705037", "username": "test", "name": "testuser", "__v": 0, "library": { "games": [{ "platform": [ "17", "94" ], "name": "Simcity", "id": "37620" }, { "platform": [ "146", "20" ], "name": "destiny", "id": "36067" }], "platforms": [{ "name": "Xbox360", "id": "20" }, { "name": "PC", "id": "94" }] } }]; user[0].library.games.forEach(function(entry) { log(entry.name); }); function log(msg) { var p = document.createElement('p'); p.appendChild(document.createTextNode(msg)); document.body.appendChild(p); }