【发布时间】:2014-08-07 23:04:52
【问题描述】:
我确实意识到这个问题的标题选择得很尴尬,如果有人有建议,我很乐意将其更改为更具描述性的内容,我只是不知道如何以不同的方式描述它。
我有这段 javascript 代码,它正在创建一个 json 对象,其中包含一个标记为 trips 的数组。这个数组中的每个对象都包含一个标记为节点的数组,我希望它包含具有旅行所有特定节点的对象。
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 循环循环通过的数组)包含多个元素。所以我希望在节点数组中多次看到测试对象。我不太明白如何解释我得到的东西。它是一个包含未指定对象的数组吗?如果是这样,为什么?
【问题讨论】:
-
你是怎么得到那个输出的?
-
你是什么意思?将 json 变量记录到控制台?
-
在浏览器中?你在 node.js 中运行吗?控制台日志?在 repl 提示符中打印它?
-
这是一个我正在尝试构建的节点模块,它是另一个测试文件所必需的。然而,模块本身暂时将其记录到控制台,并通过我终端中的节点运行。
-
它只是打印'[Object]',因为这就是
.toString()方法在登录到控制台时返回的内容。如果您在浏览器控制台中运行,您将能够使用鼠标导航对象。
标签: javascript arrays json node.js