Вроде работает.
var shedule={
'пн': '7:00-19:00',
'вт': '9:00-19:00',
'ср': '9:00-19:00',
'чт': '9:00-19:00',
'пт': '9:00-19:00',
'сб': '10:00-15:00',
'вс': '10:00-15:00'
},
__week_days=['пн','вт','ср','чт','пт','сб','вс'],
response=Object.keys(shedule).map(function(day){
return {
day:day,
worktime:shedule[day]
};
}).sort(function(a,b){
return __week_days.indexOf(a.day)-__week_days.indexOf(b.day);
}).reduce(function(res,item,index,list){
var row={from:item.day,to:void 0,worktime:item.worktime};
if(!res.length)
return [row];
if(res[res.length-1].worktime==item.worktime)
res[res.length-1].to=item.day;
else
res.push(row);
return res;
},[]).reduce(function(res,item){
res[item.from+(item.to?'-'+item.to:'')]=item.worktime;
return res;
},{});
console.log(response);