var arr=[
{date:'3月21日',startTime:'08:30',endTime:'21:30'},
{date:'3月21日',startTime:'21:30',endTime:'08:30'},
{date:'3月22日',startTime:'08:30',endTime:'21:30'},
{date:'3月22日',startTime:'21:30',endTime:'08:30'},
{date:'3月23日',startTime:'08:30',endTime:'21:30'},
{date:'3月23日',startTime:'21:30',endTime:'08:30'},
]
希望生成
[
{ date: "3月21日", dayTime: "08:30-21:30", night: "21:30-08:30" },
{ date: "3月22日", dayTime: "08:30-21:30", night: "21:30-08:30" },
{ date: "3月23日", dayTime: "08:30-21:30", night: "21:30-08:30" },
]
有帮助请给个采纳~
<script>
var arr = [{
date: '3月21日',
startTime: '08:30',
endTime: '21:30'
}, {
date: '3月21日',
startTime: '21:30',
endTime: '08:30'
}, {
date: '3月22日',
startTime: '08:30',
endTime: '21:30'
}, {
date: '3月22日',
startTime: '21:30',
endTime: '08:30'
}, {
date: '3月23日',
startTime: '21:30',
endTime: '08:30'
}, {
date: '3月23日',
startTime: '08:30',
endTime: '21:30'
}
]
let map = {}
for (let i = 0; i < arr.length; i++) {
let ai = arr[i]
if (!map[ai.date]) {
map[ai.date] = [ai]
} else {
map[ai.date].push(ai)
}
}
let res = []
Object.keys(map).forEach(key => {
var a1 = parseInt(map[key][0].startTime.substr(0, 2))
var b1 = parseInt(map[key][1].startTime.substr(0, 2))
if (a1 > b1) {
res.push({
date: key,
dayTime: map[key][1].startTime + "-" + map[key][1].endTime,
night: map[key][0].startTime + "-" + map[key][0].endTime
})
} else {
res.push({
date: key,
dayTime: map[key][0].startTime + "-" + map[key][0].endTime,
night: map[key][1].startTime + "-" + map[key][1].endTime
})
}
})
console.log(res)
</script>
程序输出结果:
编码不易,望采纳,谢谢!