kakadyi,
var obj = {
'пн': '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' }
function fn(b) {
var e = void 0;//хранилище
return Object.keys(b).reduce(function(f, a, c, d) {
c = b[a] == b[d[++c]]; // равно текущее значение следующему или нет
d = void 0 === e; //хранился ключ с прошлого раза или нет
c && d ? e = a : c || d ? !c && d && (f[a] = b[a]) : (f[e + "-" + a] = b[a], e = void 0);
//c && d если значения равны и хранилище пусто, сохраняем текущий ключ e = a
// !c && d && (f[a] = b[a]) иначе если значения неравны и хранилище пусто сохраняем ключ и значение ключа в новом обьекте
// (f[e + "-" + a] = b[a], e = void 0) иначе если значения неравны и хранилище непусто сохраняем значение из хранилища + ключ и значение ключа в новом обьекте
// и обнуляем хранилище
return f; //возращаем обьект {} для следующей итерации
}, {});
};
var output = fn(obj);
alert(JSON.stringify(output));
оператор-вопросительный-знак
reduce
object-keys-obj
сериализация-метод-json-stringify