Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“合并重复”;嵌套的;数组Javascript(用于每周的开放和关闭时间)_Javascript_Arrays_Duplicates_Combinations - Fatal编程技术网

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

“合并重复”;嵌套的;数组Javascript(用于每周的开放和关闭时间),javascript,arrays,duplicates,combinations,Javascript,Arrays,Duplicates,Combinations,这家伙在烤我的面条 我在一个数组中有一些数组,看起来像这样 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", "F

这家伙在烤我的面条

我在一个数组中有一些数组,看起来像这样

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组合时数=[];
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];
    }
}
var openHours=lidhurs[“192611”]; 每小时一次; 对于(var日=0;日

现在,您可以显示组合的小时数。

只需在数组上迭代并比较开始和结束时间?如果两个连续的条目具有相同的时间,您可以对它们进行分组。非常感谢您的回复!我现在就要试试这个。如果这个有效,你为什么不接受呢?我试图在另一个问题中将其作为重复链接,但如果答案没有被提升或接受,我不会让我这样做。我猜您在涉及变量范围时犯了一个错误。如果看不到完整的代码,很难做得更好。