前端开发中经常需要把后端返回的list 按店铺 或者 年份分类 转成2层的list
例如4条数据 按照日期分成2层的list
下面直接上代码
function shortArr(list: any) {
let fxdata = []
// 把数组按年份拆成2层的数组
list.map((mapItem) => {
if (fxdata.length == 0) {
// 第一条数据直接就是一个类别
let yeartext = mapItem.startTime
fxdata.push({
yeartext: yeartext,
children: [mapItem],
})
} else {
// res 是判断有没有同类别的数据
let res = fxdata.some((item) => {
if (mapItem.startTime === item.yeartext) {
// 假如是同一类别 或者 都是2024年的 直接追加到同类别的children里 这里的判断逻辑根据业务需求来
item.children.push(mapItem)
return true
} else {
return false
}
})
if (!res) {
// 假如没有同一类别 则跟第一条数据一样 直接就是一个类别
let yeartext2 = mapItem.startTime
fxdata.push({
yeartext: yeartext2,
children: [mapItem],
})
}
}
})
nextTick(() => {
return fxdata
})
}