节点数组包含'Object'而不是实际的 JS 对象



我确实意识到这个问题的标题选择得很尴尬,如果有人有建议的话,我很乐意把它改成更具描述性的,我只是不知道如何用不同的方式来描述它。

我有这一点javascript代码,这是创建一个json对象包含一个数组标记旅行。这个数组中的每个对象都包含一个标记为nodes的数组,我希望这个数组中包含具有一次旅行的所有特定节点的对象。

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] } ] }

我正在从中提取数据的数组,第二个for循环循环的数组,包含几个元素。因此,我希望在节点数组中看到测试对象几次。我不太明白如何解释我所得到的。它是一个包含未指定对象的数组吗?如果是,为什么?

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

测试一下:

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

这将把json对象转换成格式良好的文本,它应该被完美地记录下来。

最新更新