我有一个对象数组,格式如下:
var res = [
{ StartTime: "04/29/2020 13:30", Status: "free" },
{ StartTime: "04/29/2020 14:00", Status: "free" },
{ StartTime: "04/29/2020 14:30", Status: "free" },
{ StartTime: "04/29/2020 15:00", Status: "free" },
{ StartTime: "04/29/2020 20:00", Status: "free" },
{ StartTime: "04/29/2020 20:30", Status: "free" },
];
现在,我想创建一个对象,将该对象数组拆分为2个对象数组,如果StartTimes相差30分钟,它们可以保持在一起,否则,我将继续创建一个新数组,该对象看起来像这样:
var res = [
[
{ StartTime: "04/29/2020 13:30", Status: "free" },
{ StartTime: "04/29/2020 14:00", Status: "free" },
{ StartTime: "04/29/2020 14:30", Status: "free" },
{ StartTime: "04/29/2020 15:00", Status: "free" },
],
[
{ StartTime: "04/29/2020 20:00", Status: "free" },
{ StartTime: "04/29/2020 20:30", Status: "free" },
],
];
我正在使用moment.js查找两个日期之间的差异。
答案 0 :(得分:0)
您可以使用原始JavaScript来完成此操作,例如:
var res = [
{ StartTime: "04/29/2020 13:30", Status: "free" },
{ StartTime: "04/29/2020 14:00", Status: "free" },
{ StartTime: "04/29/2020 14:30", Status: "free" },
{ StartTime: "04/29/2020 15:00", Status: "free" },
{ StartTime: "04/29/2020 20:00", Status: "free" },
{ StartTime: "04/29/2020 20:30", Status: "free" },
];
let j = 0, result = [], previous;
for (let i = 0; i < res.length; i++) {
let current = new Date(res[i].StartTime);
if (previous && current.getTime() - previous.getTime() > 30 * 60 * 1000) j++;
(result[j] = result[j] || []).push(res[i]);
previous = current;
}
console.log(result);