vue 對象數組中,相鄰的且相同類型和內容的數據合並,重組新的數組對象


在項目中,有時候會遇到一些需求,比如行程安排,或者考勤狀態。后台返回的獲取是這一周的每一天的狀態,但是我們前端需求顯示就是要把相鄰的且狀態相同的數據進行合並,所以我們就要重新組合返回的數據。如下所示:

       //后台返回的數據格式  (一周7天的狀態)
       let data = [
           {"TYPE": "01", "REMARK": "休假"},
            {"TYPE": "03", "REMARK": "在班"},
            {"TYPE": "03", "REMARK": "在班"},
            {"TYPE": "02", "REMARK": "上海出差"},
            {"TYPE": "02", "REMARK": "北京出差"},
            {"TYPE": "04", "REMARK": "休息"},
            {"TYPE": "04", "REMARK": "休息"}
        ]
         
        let newdata = []
        let index = 1;
        let i = 0;
        for(let k in data){
            let {TYPE,REMARK} = data[i];
            let {TYPE:TYPE2,REMARK:REMARK2} = data[i+1]||{}
            i++;

            //類型相同且內容相同
            if(TYPE==TYPE2 && REMARK==REMARK2){
                index++;
            }else{
                newdata.push({
                    ...data[k],
                    key:TYPE+REMARK,
                    hasCol:index
                })
                index = 1;
            }
        }
      console.log(newdata)

 

重組后newdata的數據:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM