【发布时间】:2016-03-24 19:40:08
【问题描述】:
我正在尝试读取一组对象(即开始/结束时间),如果它们是背靠背的,则将其中的两个(或更多)时间组合起来。
即。第一个对象的结束时间与下一个对象的开始时间相同。如果是,请将它们组合起来。然后用数组中的下一个对象检查新组合对象的结束时间
这是一个简化的时间数组:
var times = [
{
start: 1,
end: 2
},{
start: 2,
end: 3
},{
start: 4,
end: 5
},{
start: 6,
end: 7
},
]
我希望(或有一个 diff 数组)输出如下:
var newTimes = [
{
start: 1,
end: 3
},{
start: 4,
end: 5
},{
start: 6,
end: 7
},
]
如果连续 3 次,那就更棘手了。
var threeTime = [
{
start: 1,
end: 2
},{
start: 2,
end: 3
},{
start: 3,
end: 5
},{
start: 6,
end: 7
},
]
上面应该变成:
var newThreeTimes = [
{
start: 1,
end: 5
},{
start: 6,
end: 7
},
]
原始时间数组将始终从最旧(最小开始时间)到最新(最大开始时间)排序。输出不需要按任何特定顺序。所有时间对象都是时刻。
谁能帮我解决这个问题?
【问题讨论】:
标签: javascript arrays momentjs