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