// 数据结构
let data = [{
title: '今天天气真不错',
content: '今天天气真不错,太阳暖暖的,白云在天上飘啊飘的,风轻轻的 吹着,吹得树叶摆啊摆的。',
date: '2020-12-12'
}, {
title: '今天发生了件愉快的事情',
content: '想着今天要陪小屁娃去看电竞展,以此为借口没有晨练! ',
date: '2020-12-12'
}, {
title: '今天天气真不好',
content: '今天天气真不好..热的我都要发疯了,只能呆在室内',
date: '2020-12-11'
}]
function dataResort(data) {
// 定义空数组,用于存储新组装的数据
let newArr = [];
// 遍历数组
data.forEach((item, i) => {
// 默认当前操作的数据下标 -1
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);
}
})
// 返回新数组
return newArr
}
console.log(dataResort(data));
结果:
问题:分页加载情况下会出现两次同日期
解决办法:在foreach 中判断当前遍历数据时间是否等于 list最后一天数据的时间。