节点数组包含“对象”而不是实际的JS对象

我意识到这个问题的标题是尴尬的select,如果有人提出build议,我会很乐意把它改成更具描述性的,我只是不知道如何描述它。

我有这一点的JavaScript代码,这是创build一个json对象包含一个数组标签旅行。 这个数组中的每个对象都包含一个标记为节点的数组,我希望这个数组包含一个行程的所有特定节点。

var json = {origin: data.origin.name, destination: data.destination.name, trips: []}; for (var i = 0; i < data.trips.length; i++) { var departure = data.trips[i].dep.time; var arrival = data.trips[i].arr.time; var trip = {departure: departure, arrival: arrival, nodes: []} for (var j = 0; j < data.trips[i].legs.length; j++) { trip.nodes.push({test: 'test'}); } json.trips.push(trip); } 

结果看起来像这样。

 { origin: 'Dresden, Helmholtzstraße', destination: 'Dresden, Zellescher Weg', trips: [ { departure: '12:04', arrival: '12:26', nodes: [Object] }, { departure: '13:02', arrival: '13:11', nodes: [Object] } ] } 

我从中拉出数据的数组,循环的第二个循环,包含几个元素。 所以我期望在节点数组内看到几次testing对象。 我不太明白如何解释我所得到的。 它是一个包含未指定对象的数组吗? 如果是这样,为什么?

我认为这是你的console.log对象的输出。 我相信节点console.log函数将回退到只显示Object时,对象是一定的深度。 这可以确保您的控制台不被文本完全淹没。

为了testing它,试着做:

 console.log(JSON.stringify(json, null, 4)); 

这将把json对象转换为格式良好的文本,应该完美logging。