【发布时间】:2020-04-08 13:15:18
【问题描述】:
我正在尝试获取特定对象中所有事件类型的时间戳,例如在 XYZ 中有 open、processed、delivered 我想获取所有事件的时间戳并将其推送到每个对象的数组。
var data = {
XYZ: [
{
email: "amar045@gmail.com",
office: "xyz.in",
reportName: "payroll",
event: "open",
timestamp: "02-12-2019 00:15:29"
},
{
email: "amar045@gmail.com",
office: "xyz.in",
reportName: "payroll",
event: "processed",
timestamp: "02-12-2019 00:15:32"
},
{
email: "amar0445@gmail.com",
office: "yyy.in",
reportName: "payroll",
event: "open",
timestamp: "02-12-2019 00:15:34"
},
{
email: "amar0445@gmail.com",
office: "yyy.in",
reportName: "payroll",
event: "delievered",
timestamp: "02-12-2019 00:15:36"
},
{
email: "amar045@gmail.com",
office: "xyz.in",
reportName: "payroll",
event: "processed",
timestamp: "02-12-2019 00:15:38"
}
]
};
我的代码是
function get_timestamps(data, event) {
var timestamps = [];
for (key in data) {
var arr = data[key];
timestamps = timestamps.concat(
arr.filter(a => a.event == event).map(a => a.timestamp)
);
}
return timestamps;
}
var openTime = get_timestamps(data, "open");
var proceesTime = get_timestamps(data, "processed");
var delieverdTime = get_timestamps(data, "delivered");
目前,我已经分别获得了所有事件的时间戳,当我尝试合并它们时,它无法满足我的要求。
预期的输出是
[['open timestamp1','processed timestamp1','delivered timestamp1','open timestamp2','processed timestamp2','delivered timestamp2'],
['open timestamp1','processed timestamp1','delivered timestamp1','open timestamp2','processed timestamp2','delivered timestamp2']]
【问题讨论】:
-
发布您已经尝试过的内容,我们可以告诉您如何继续
-
@DovRine 你能提出一些建议吗
-
几分钟后,我想到了一个 array.reduce 的想法。同时,您是否知道整个数据对象中的“delivered”拼写错误?
-
这是手写对象,所以拼写错误。
-
您是否还想嵌套输出数组的副本?
标签: javascript arrays object timestamp