我有一个带有时间间隔的对象数组,数字0表示星期日。在我的时间安排页面中选择特定一天的不同时间范围。我想对时间值进行分组。我的初始数组如下所示
时间表选择看起来像
每个单元格都有data-day
和data-time
属性,并且选定的单元格具有data-selected
属性
我迭代选定的时间并得到如下结果
var selectedIntervals = {};
$('td[data-selected]').each(function() {
var a = $(this).attr('data-day');
var b = $(this).attr('data-time');
if(!selectedIntervals[a]) {
selectedIntervals[a]=[];
}
selectedIntervals[a].push(b);
});
我想要这样的输出
{
0: [["00:00", "05:00"],["08:00", "11:00"]]
}
请帮忙。
最佳答案
试试这个:
arr = ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "08:00", "09:00", "10:00", "11:00"];
output = [];
start = arr[0];
for(i=1; i<arr.length; i++) {
if(i == arr.length-1) {
output.push([start, arr[i]]);
break;
}
if(parseInt(arr[i]) - parseInt(arr[i-1]) > 1) {
output.push([start, arr[i-1]]);
start = arr[i];
}
}
关于javascript - 对数组中的第一个和最后一个值进行分组(连续值与第一个和最后一个元素分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297819/