组合重复“;嵌套的“;数组Javascript(用于每周开放和关闭时间)

Combining Duplicate "Nested" Arrays Javascript (Using for weekly open and closed hours)

本文关键字:每周 时间 嵌套 数组 组合 Javascript 用于      更新时间:2023-09-26

这一次烤我的面条太棒了!

我在一个看起来像的阵列中有一些阵列

var lidHours = {"192611":[
["07:00","21:30"],
["07:00","21:30"],
["07:00","21:30"],
["09:00","21:30"],
["09:00","00:00"],
["08:00","08:00"],
["",""]
]
}

和一系列的星期天

var weekDays = new Array("Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun");

因此,每个数组表示一周中的一天。我在页面上输出如下:星期一:7:00-21:00等等…

但你可以看到,前3天的时间完全相同,我的目标是让它显示如下:

Mon-Wed: 7:00 - 9:00
Thu: 9:00 - 9:30
Fri: 9:00 - 12:00
Sat: 8:00 - 8:00
Sun: Closed

我可以格式化时间,知道它们何时关闭,并从军用转换为标准,但我不知道如何组合重复的时间(周一至周三(,我如何保留周一,并知道最后一个重复的日子是周三??

如有任何帮助,我们将不胜感激。谢谢

var combined_hours = [];
var openHours = lidHours["192611"];
var prevHours;
for (var day = 0; day < openHours.length; day++) {
    var curHours = openHours[day];
    if (curHours[0] != prevHours[0] || curHours[1] != prevHours[1]) {
        combined_hours.push({ startDay: weekDays[day],
                              endDay: "", 
                              open: curHours[0], 
                              close: curHours[1] });
        prevHours = curHours;
    } else {
        combined_hours[combined_hours.length-1].endDay = '-' + weekdays[day];
    }
}

现在您可以显示combined_hours。