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

