【study】将groupNum相等的处理放在一个dateItem中

92 阅读1分钟
 const val = [
            { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },
            { orderDate: 7, arrivalRule: 7, groupNum: 0, ruleType: 4, startDate: null },
            { orderDate: 2, arrivalRule: 3, groupNum: 1, ruleType: 4, startDate: null },
            { orderDate: 2, arrivalRule: 3, groupNum: 2, ruleType: 4, startDate: null },
            { orderDate: 2, arrivalRule: 3, groupNum: 2, ruleType: 4, startDate: null },
            { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },
            { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },
        ]


// 处理成:
     // [
        //     {
        //         dateItem: [  { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },
        //                      { orderDate: 7, arrivalRule: 7, groupNum: 0, ruleType: 4, startDate: null },
        //                      { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },
        //                      { orderDate: 2, arrivalRule: 3, groupNum: 0, ruleType: 4, startDate: null },]
        //     },
        //     {
        //         dateItem: [{ orderDate: 2, arrivalRule: 3, groupNum: 1, ruleType: 4, startDate: null },],
        //     },
        //    {
        //         dateItem : [{ orderDate: 2, arrivalRule: 3, groupNum: 2, ruleType: 4, startDate: null },
        //                  { orderDate: 2, arrivalRule: 3, groupNum: 2, ruleType: 4, startDate: null },]
        //    }]
        

// 1.递归

        const tempArr = [];
        function sss(val) {
            if (!val.length) return;
            let dateItem = [val[0]];
            console.log(dateItem, 'dateItem');
            for (let j = 1; j < val.length; j++) {
                if (val[0].groupNum === val[j].groupNum) {
                    dateItem.push(val[j]);
                    val.splice(j, 1);
                    j--;
                }
            }
            val.shift();
            tempArr.push({
                dateItem
            })
            sss(val);
        }
        sss(val);
        console.log(tempArr, "tempArr");
        
 // 2.
        let obj = {}
        val.forEach((i)=> {
            if(obj[i.groupNum]) {
                obj[i.groupNum].push(i)
            } else {
                obj[i.groupNum] = [i]
            }
        })

        let result = []
        for(let i in obj) {
            result.push({dataItem: obj[i]})
        }

        console.log(result, 'result');