Javascript 从for循环创建数组对象

Javascript 从for循环创建数组对象,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我编写了下面的代码,试图从obj变量中的数据中提取ScheduledArrivalTime字段中的时间。我想尝试将提取的时间数据推送到一个新的数组中,以便以后可以在不同的函数中使用它 目前,它正在将时间输出到我的数组中 05, 29, 00,05, 35, 00 但我想以 [{05, 29, 00}, {05, 35, 00}] 或 这是我目前掌握的密码。当我尝试执行t.push({})时,所有的代码输出都是[object,object]。我不知道我错在哪里 var标题,obj,i,x=“

我编写了下面的代码,试图从obj变量中的数据中提取ScheduledArrivalTime字段中的时间。我想尝试将提取的时间数据推送到一个新的数组中,以便以后可以在不同的函数中使用它

目前,它正在将时间输出到我的数组中

05, 29, 00,05, 35, 00
但我想以

[{05, 29, 00}, {05, 35, 00}]

这是我目前掌握的密码。当我尝试执行t.push({})时,所有的代码输出都是[object,object]。我不知道我错在哪里

var标题,obj,i,x=“”;
obj={
“数据”:[{
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:29:00”,
“终点”:“马德斯基体育场”
}, {
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:35:00”,
“终点”:“马德斯基体育场”
}]
}
var t=[];
用于(对象数据中的i){
var time=obj.data[i].调度时间[11]+obj.data[i].调度时间[12]+,“+obj.data[i].调度时间[14]+obj.data[i].调度时间[15]+,“+obj.data[i].调度时间[17]+obj.data[i].调度时间[18];
t、 推(时间);
}
document.getElementById(“time”).innerHTML=t


好吧,如果您想在
innerHTML
中编写您在
控制台.log中看到的确切结构,例如,您需要压缩一些字符才能显示出来

正如您所看到的,console.log在我的代码中准确地显示了您需要的内容,但要在文档中显示,我需要使用一种“黑客”方式来显示

当我尝试执行t.push({})时,所有的代码输出都是[object,object]

之所以这样说,是因为当您尝试一次性将整个对象添加到文档中时,它使用对象的
toString()
,这就是为什么它显示
[object object]
,这是预期的行为

请,看看这是否对你有帮助,如果没有,请告诉我原因

var标题,obj,i,x=“”;
obj={
“数据”:[{
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:29:00”,
“终点”:“马德斯基体育场”
}, {
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:35:00”,
“终点”:“马德斯基体育场”
}]
}
var t=[];
用于(对象数据中的i){
var time=obj.data[i].调度时间[11]+obj.data[i].调度时间[12]+,“+obj.data[i].调度时间[14]+obj.data[i].调度时间[15]+,“+obj.data[i].调度时间[17]+obj.data[i].调度时间[18];

让timeObj={time}/好吧,如果您想在
innerHTML
中编写您在
console.log
中看到的确切结构,例如,您需要压缩一些字符才能显示出来

正如您所看到的,console.log在我的代码中准确地显示了您需要的内容,但要在文档中显示,我需要使用一种“黑客”方式来显示

当我尝试执行t.push({})时,所有的代码输出都是[object,object]

之所以这样说,是因为当您尝试一次性将整个对象添加到文档中时,它使用对象的
toString()
,这就是为什么它显示
[object object]
,这是预期的行为

请,看看这是否对你有帮助,如果没有,请告诉我原因

var标题,obj,i,x=“”;
obj={
“数据”:[{
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:29:00”,
“终点”:“马德斯基体育场”
}, {
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:35:00”,
“终点”:“马德斯基体育场”
}]
}
var t=[];
用于(对象数据中的i){
var time=obj.data[i].调度时间[11]+obj.data[i].调度时间[12]+,“+obj.data[i].调度时间[14]+obj.data[i].调度时间[15]+,“+obj.data[i].调度时间[17]+obj.data[i].调度时间[18];

让timeObj={time}/我建议不要使用基于索引的时/分/秒检索,而是从字符串中创建一个
Date
对象,然后从中获取所有必需的信息

您可以使用下面的代码作为构建结构的示例,其中包含小时/分钟/秒,以便之后使用它们格式化输出字符串

var headings, obj, i, x = "";
obj = {
    "data": [{
        "Site": "RTL",
        "Operator": "RGB",
        "LineRef": "53a",
        "ScheduledArrivalTime": "2018-08-07 05:29:00",
        "EndPoint":"Madejski Stadium"
    }, {
        "Site": "RTL",
        "Operator": "RGB",
        "LineRef": "53a",
        "ScheduledArrivalTime": "2018-08-07 05:35:00",
        "EndPoint":"Madejski Stadium"
    }]
}

const retrieveScheduledArrivalTime = (data) => {
    return data.map((entry) => {
    const date = new Date(entry.ScheduledArrivalTime);
    const hours = date.getHours();
    const minutes = date.getMinutes();
    const seconds = date.getSeconds();
    return {
        hours,
      minutes,
      seconds
    };
    });
}

const getScheduledArrivalTimeAsText = (time) => {
    return time.hours + ':' + time.minutes + ':' + time.seconds;
};

const t = retrieveScheduledArrivalTime(obj.data);

document.getElementById("time").innerHTML = t.map(getScheduledArrivalTimeAsText).join('<br/>');
var标题,obj,i,x=“”;
obj={
“数据”:[{
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:29:00”,
“终点”:“马德斯基体育场”
}, {
“站点”:“RTL”,
“操作员”:“RGB”,
“LineRef”:“53a”,
“日程安排时间”:“2018-08-07 05:35:00”,
“终点”:“马德斯基体育场”
}]
}
常量检索ScheduledArrivatime=(数据)=>{
返回数据.map((条目)=>{
const date=新日期(entry.ScheduledArrivalTime);
const hours=date.getHours();
const minutes=date.getMinutes();
const seconds=date.getSeconds();
返回{
小时,
会议记录,
秒
};
});
}
常量getScheduledArrivalTimeAsText=(时间)=>{
返回time.hours+':'+time.minutes+':'+time.seconds;
};
const t=检索计划时间(对象数据);
document.getElementById(“time”).innerHTML=t.map(getScheduledArrivalTimeAsText.join(“
”);
我建议不要使用基于索引的时/分/秒检索,而是从字符串中创建一个
Date
对象,然后从中获取所有必需的信息

您可以使用下面的代码作为构建结构的示例,该结构具有小时/分钟
var headings, obj, i, x = "";
obj = {
    "data": [{
        "Site": "RTL",
        "Operator": "RGB",
        "LineRef": "53a",
        "ScheduledArrivalTime": "2018-08-07 05:29:00",
        "EndPoint":"Madejski Stadium"
    }, {
        "Site": "RTL",
        "Operator": "RGB",
        "LineRef": "53a",
        "ScheduledArrivalTime": "2018-08-07 05:35:00",
        "EndPoint":"Madejski Stadium"
    }]
}

const retrieveScheduledArrivalTime = (data) => {
    return data.map((entry) => {
    const date = new Date(entry.ScheduledArrivalTime);
    const hours = date.getHours();
    const minutes = date.getMinutes();
    const seconds = date.getSeconds();
    return {
        hours,
      minutes,
      seconds
    };
    });
}

const getScheduledArrivalTimeAsText = (time) => {
    return time.hours + ':' + time.minutes + ':' + time.seconds;
};

const t = retrieveScheduledArrivalTime(obj.data);

document.getElementById("time").innerHTML = t.map(getScheduledArrivalTimeAsText).join('<br/>');