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

时间:2014-08-07 23:04:52

标签: javascript arrays json node.js

我确实意识到这个问题的标题是笨拙地选择的,如果有人提出建议,我很乐意将其更改为更具描述性的内容,我只是不知道如何以不同的方式描述它。

我有一些javascript代码,它创建了一个包含标记为trip的数组的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] } ] }

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

1 个答案:

答案 0 :(得分:5)

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

要测试它,请尝试:

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

这会将json对象转换为格式正确的文本,应该完美记录。