猿问

js转化数据结构

做一个时间段的页面,一节课30分钟。后端想要的数据结构是这样的
2018-09-17|09:00-09:30,2018-09-18|09:30-11:00,2018-09-19|10:00-11:30,2018-09-20|10:30-11:00,2018-09-21|11:00-11:30,2018-09-22|11:30-12:00
我首先做成了这样的数据结构
setArray=[
data:2018-09-17,
ranges:[
["09:00","09:30"],
["09:30","10:00"],
["10:30","11:30"],
["11:30","12:00"]
],
data:2018-09-18,
ranges:[
["09:00","09:30"],
["09:30","10:00"],
["10:30","11:30"],
["11:30","12:00"]
],
]
vargetJson=setArray.map(d=>{
returnd.date+'|'+d.ranges.map(r=>r.join('-')).join('|')
}).join(',')
通过上面的方法也成功转化成后端想要的结构了。但是后端说,如果几节课属于连续一块的,就合成一个数组开始结束时间就行了就好比上面写的
ranges:[
["09:00","09:30"],
["09:30","10:00"],
["10:30","11:30"],
["11:30","12:00"]
]
需要改成
ranges:[
["09:00","10:00"],
["10:00","12:00"],
]
求帮一下忙
蝴蝶不菲
浏览 396回答 2
2回答

慕妹3146593

s=[];for(leteofranges){letv=s.pop();if(v&&v[1]==e[0]){s.push([v[0],e[1]]);}else{s.push(v,e)}}s.shift();//移除undefined
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答