var a = [
{
day: 'Понедельник',
start_time: '18:00',
end_time: '21:00'
},
{
day: 'Вторник',
start_time: '18:00',
end_time: '21:00'
},
{
day: 'Среда',
start_time: '18:30',
end_time: '21:40'
},
{
day: 'Четверг',
start_time: '18:00',
end_time: '21:00'
},
]
Если вам нужно склеивать дни, которые идут друг за другом, то:
var arr = [];
for (let q of a){arr.push(q.day + ' ' + q.start_time + ' ' + q.end_time)}
arr = arr.map(w => w.split(' '));
for (var i = 0; i < arr.length-1; i++) {
if ((arr[i][1] == arr[i+1][1]) && (arr[i][2] == arr[i+1][2])) {
arr[i][0] += '-'+arr[i+1][0];
arr.splice(i+1,1);
i--;
}
}
arr.map(w => {if(w[0].includes('-')) {return w[0]= w[0].split('-')[0] + '-' + w[0].split('-')[w[0].split('-').length-1]} else {return w[0]}}), arr = arr.map(w => w[0] + ', c ' + w[1] + ' до ' + w[2]).join('\n');
Выведет:
"Понедельник-Вторник, c 18:00 до 21:00
Среда, c 18:30 до 21:40
Четверг, c 18:00 до 21:00"
Если вообще все дни со схожими часами, то:
var arr = [];
for (let q of a){arr.push(q.day + ' ' + q.start_time + ' ' + q.end_time)}
arr = arr.map(w => w.split(' '));
for (var i = 0; i < arr.length; i++) {
for (var q = i+1; q < arr.length; q++){
if ((arr[i][1] == arr[q][1]) && (arr[i][2] == arr[q][2])) {
arr[i][0] += '-'+arr[q][0];
arr.splice(q,1);
}
}
}
arr = arr.map(w => w[0] + ', c ' + w[1] + ' до ' + w[2]).join('\n');
Выведет:
"Понедельник-Вторник-Четверг, c 18:00 до 21:00
Среда, c 18:30 до 21:40"