javascript - 对数组中的第一个和最后一个值进行分组(连续值与第一个和最后一个元素分组)

标签 javascript jquery arrays object

我有一个带有时间间隔的对象数组,数字0表示星期日。在我的时间安排页面中选择特定一天的不同时间范围。我想对时间值进行分组。我的初始数组如下所示

时间表选择看起来像

enter image description here

每个单元格都有data-daydata-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);
});

enter image description here

我想要这样的输出

{
         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/

相关文章:

javascript - jQuery 切换(隐藏/显示)子类

javascript - 查找因溢出而被隐藏的文本 :hidden?

javascript - 如何使用 Javascript 函数获取 RadioList 值

javascript - 在 Three.js 中始终向上旋转对象

javascript - 是否可以同时使用多个for循环?

php - MySQL:sum() 和连接多个表

java - java中使用Arraylist的动态二维数组

javascript - 在元素名称上使用迭代器变量?

javascript - jquery 设置的鼠标悬停在 ie7 中不起作用

php - 字符串替换和数组的替代方法