Javascript 如何在星期几同时出现时添加连字符

Javascript 如何在星期几同时出现时添加连字符,javascript,Javascript,例1: daysofweek=['MON','TUE','WED','THU','FRI','SUN'] ; 输出应为: MON-FRI,SUN MON,TUE 例2: daysofweek=['MON',TUE']; 输出应为: MON-FRI,SUN MON,TUE var oneDArray=函数(weekArray){ 风险值周=[]; 对于(var i=0;iv==d)?d:'-') .加入(“”) .split(“-”) .flatMap(d=>d.length>3?(d

例1:

daysofweek=['MON','TUE','WED','THU','FRI','SUN'] ;
输出应为:

MON-FRI,SUN
MON,TUE
例2:

daysofweek=['MON',TUE'];
输出应为:

MON-FRI,SUN
MON,TUE
var oneDArray=函数(weekArray){
风险值周=[];
对于(var i=0;i
您可以参考一周中的所有日期来比较缺少的日期,并在缺少的日期上使用
拆分
映射
,如下所示

let daysofweek1=[“周一”,“周二”,“周三”,“周四”,“周五”,“周日];
让daysofweek2=[“周一”,“周三”,“周四”,“周五”,“周日];
让daysofweek3=[“周二”,“周三];
让所有星期=[‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’、‘星期日’]
函数getCombinedDays(arr){
返回allWeeks.map(d=>arr.some(v=>v==d)?d:'-')
.加入(“”)
.split(“-”)
.flatMap(d=>d.length>3?(d.length==6?[d.slice(0,3),d.slice(-3)]:d.slice(0,3)+'-'+d.slice(-3)):d)
.filter(d=>d)
}
console.log(getCombinedDays(daysofweek1))
console.log(getCombinedDays(daysofweek2))

console.log(getCombinedDays(daysofweek3))
发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关更多信息,请参阅并采取。请尝试先解决问题,然后询问您坚持使用代码的部分。我认为,根据定义,一周中的几天不能同时进行。可能是连续的。为什么输出应该是
MON-FRI,SUN
?^还有为什么['MON','TUE']不会成为MON-TUEmy?问题是当一周中的迭代天数同时出现时,如何添加连字符。MON-FRI,SUN。如果没有并发周,则将以逗号分隔的值显示。var daysofweek=['MON','TUE'];输出现在是MON-TUE:但预期是MON,星期二您看到MON-TUE是连续的。这就是为什么你要得到这个输出。[conDays[1]]-排序器[conDays[0]]==1{week[i]=conDays;}其他{week[i]=conDays.join(“-”;}}}返回week.join();};