算法(二)

要求最后输出

[
  {
    year: 2022,
    children: []
  },
  {
    year: 2023,
    children: []
  }
]

测试数据

const arr = [
    {
        year: '2023',
        color: '#e88345',
        createTime: '2023-02-29'
    },
    {
        year: '2023',
        color: '#2f8f22',
        createTime: '2023-01-29'
    },
    {
        year: '2023',
        color: '#d8001b',
        createTime: '2023-02-1'
    },
    {
        year: '2022',
        color: '#d8001b',
        createTime: '2022-02-05'
    },
    {
        year: '2022',
        color: '#2f8f22',
        createTime: '2022-01-11'
    },
    {
        year: '2022',
        color: '#e88345',
        createTime: '2022-11-23'
    },
    {
        year: '2022',
        color: '#2f8f22',
        createTime: '2022-12-09'
    }
]

答案揭晓:

const getFormatArr = (arr) => {
    return Object.values(
        arr.reduce((prev, next) => {
            const [year] = next.createTime.split('-')
            prev[year] ||= { year, children: [] }
            prev[year].children.push(next)
            return prev
        }, {})
    )
}


console.log(getFormatArr(arr));
posted @ 2023-02-09 15:09  咸鱼也要有理想  阅读(16)  评论(0)    收藏  举报
站长工具: