img

js 把时间作为列表的key,生成一个树

2022-01-25 0条评论 3.4k次阅读 JavaScript


图示要求

微信图片_20220125105855.png
假设返回的列表

微信图片_20220125105859.png
想要的结果

完整代码

let data = [
    {
        created_at: '2022-01-24 18:25:43',
        id: 1
    },
    {
        created_at: '2022-02-24 18:25:43',
        id: 2
    },
    {
        created_at: '2022-01-24 12:25:43',
        id: 3
    },
    {
        created_at: '2023-01-24 18:25:43',
        id: 4
    },
    {
        created_at: '2021-01-24 18:25:43',
        id: 5
    },
];
const group = data.reduce((obj, item) => {
    // const year = new Date(item.created_at.replace(/-/g, '/')).getFullYear()
    const year = item.created_at.substring(0, 4)
    if (!obj[year]) obj[year] = []
    obj[year].push(item)
    return obj
}, {})
let a = Object.keys(group).map(key => ({ time: key, lists: group[key] }))
// 还原的方法
// let b = a.reduce((arr, item) => arr.concat(item.lists), [])
// console.log(b, `=========>b`)
console.log(a, `=========>a`)

image.png

💬 COMMENT


🦄 支持markdown语法

👋友