js 遍历找到相同日期的放到同一个数组里

返回的格式
返回的结构.png

要处理显示的结构
显示的结构.png

方式一
let newArr = [];
srcTrackVoList.forEach((item, i) => {
let index = -1;
let isExists = newArr.some((newItem, j) => {
if (item.date == newItem.date) {
index = j;
return true;
}
});
if (!isExists) {
newArr.push({
date: item.date,
subList: [item]
});
} else {
newArr[index].subList.push(item);
}
});
console.log(newArr);

方式二 // 格式化返回数据列表
formatTrackList(srcTrackVoList) {
let list = [];
srcTrackVoList.forEach(ele => {
ele.checked = false;
ele.date = dayjs(parseInt(ele.date)).format("YYYY.MM.DD");
ele.startDateTime = dayjs(parseInt(ele.startDateTime)).format("HH:mm");
ele.endDateTime = dayjs(parseInt(ele.endDateTime)).format("HH:mm");
ele.mile = ele.mile.toFixed(2);
ele.totalDate = ele.totalDate.replace("分", "min").replace("小时", "h");
const item = list.find(day => day.date === ele.date);
if (item) {
item.tracks.push(ele);
} else {
const day = {
date: ele.date,
tracks: [ele]
};
list.push(day);
}
});
return list;
},

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容