Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
643 views
in Technique[技术] by (71.8m points)

写一个方法,数据格式化处理

//原始数据
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'
 }
    ]
]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

根据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' } ] ]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...