Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

//原始数据
let times = [
    {
        date: '2020/10/29',
 type: '1'
 },
 {
        date: '2020/10/30',
 type: '2'
 },
 {
        date: '2020/11/1',
 type: '3'
 }
]


//实现一个方法把上面数据按照月份分组
//转换后的数据
let timesArr = [
    [
        {
            date: '2020/10/29',
 type: '1'
 },
 {
            date: '2020/10/30',
 type: '2'
 }
    ],
 [
        {
            date: '2020/11/1',
 type: '3'
 }
    ]
]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.3k views
Welcome To Ask or Share your Answers For Others

1 Answer

根据Date对象月值来分组处理即是

function fmtTime(times=[],key="date"){
    let o = {}
    times.forEach(v => {
      let m = new Date(v[key]).getMonth()
      o[m] && o[m].push(v) || (o[m]=[v])
    })
    return Object.values(o)
}
console.log(fmtTime(times))

输出

[ [ { date: '2020/10/29', type: '1' },
    { date: '2020/10/30', type: '2' } ],
  [ { date: '2020/11/1', type: '3' } ] ]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...