编辑代码

const orderData = [
    {
        dates: "2023-6-24 20:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "1",
        userName: "a",
    },
    {
        dates: "2023-6-24 10:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "1",
        userName: "a",
    },
    {
        dates: "2023-6-25 09:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "2",
        userName: "a",
    },
    {
        dates: "2023-6-25 09:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "3",
        userName: "a",
    },
    {
        dates: "2023-6-25 09:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "3",
        userName: "a",
    },
    {
        dates: "2023-6-26 09:00:00",
        startTime: "11:00:00",
        endTime: "12:00:00",
        serviceName: "3",
        userName: "a",
    }
];

// mergeArr(arr,key){
//     var afterData=[];
//     arr.forEach((item)=>{
//         const flag = afterData.find((item1)=> item1[key] === item[key])
//         if(!flag){
//             const obj={}
//             obj[key] = item[key]
//             obj['dates'] = [item]
//             afterData.push(obj)
//         }else{
//             flag.dates.push(item)
//         }
//     })
//     return afterData
// }

// let dataInfo={}
// let servicesInfo={}
// orderData.forEach((item)=>{
//     let { dates }= item;
//     if(!dataInfo[dates]){
//         dataInfo[dates] = {
//             dates,
//             services:[]
//         }
//     }
//     dataInfo[dates].services.push(item);
// });
// let list = Object.values(dataInfo);
// console.log(list)

// const arr2 = []

// orderData.forEach((item, index) => {
//     const has = arr2.findIndex(o => o.dates.split(" ")[0] === item.dates.split(' ')[0]);

//     if (has == -1) {
//         arr2.push({
//             days: item.dates,
//             services: [item.serviceName]
//         })
//     } else {
//         arr2[has].services.push(item.serviceName)
//     }
// })

// // let list = Object.Values(arr2);
// console.log(arr2)


let arr = []
let obj1 = []
let obj2 = []
let a = []
let b = []

for (let i = 0; i < orderData.length; i++) {
    if (!obj1.some(item => item.dates.split(' ')[0] === orderData[i].dates.split(' ')[0])) {
        obj1.push(orderData[i])
        arr.push({
            days: orderData[i].dates.split(' ')[0],
            // services:[]
            // services: {
            //     // serviceName: orderData[i].serviceName,
            //     serviceName: [
            //         { orderTime: [] }
            //     ]

            // }
        })
        if (!obj2.some(item => item.serviceName === orderData[i].serviceName)) {
            obj2.push(orderData[i].serviceName)
            arr.push(
                {
                    services: [{
                        serviceName: orderData[i].serviceName,
                        orderTime: []
                    }

                    ]
                }
            )
        } else {
            for (let j = 0; j < arr.length; j++) {
                if (arr[j].serviceName === orderData[i].serviceName) {
                    arr[j].services.push(JSON.stringify({ serviceName: orderData[i].serviceName }))
                }
            }
        }
    }
    // else {
    //     for (let k = 0; k < arr.length; k++) {
    //         if (arr[k].days === orderData[i].dates.split(' ')[0]) {
    //             arr[k].services.push(JSON.stringify({ serviceName: orderData[i].serviceName }))
                // arr[k].services.orderTime.push(JSON.stringify({
                //     startTime: orderData[i].startTime,
                //     endTime: orderData[i].endTime
                // }))
            }
        }
    }

    // if (!a.some(item => item.serviceName === orderData[i].serviceName)) {
    //     a.push({
    //         serviceName: orderData[i].serviceName,
    //         orderTime: []

    //     })
    // }else{
    //     for (let j=0;j<a.length;j++){
    //         if(a[j].serviceName === orderData[i].serviceName){
    //             a[j].orderTime.push(JSON.stringify(
    //                 {
    //                     startTime:orderData[i].startTime,
    //                     endTime:orderData[i].endTime
    //                 })
    //             )
    //         }
    //     }
    // }
}

console.log(arr)