数据分组!sort方法对比数字的大小

309 阅读1分钟

数据分组

初到掘金写文章。记录一下自己进步的点滴

今天看到一道题,数据分组觉得很有意思

var arr = [
    {id: 1,created: '2016-05-04 15:12:40',content: '1'},
    {id: 2,created: '2016-04-06 15:12:40',content: '2'},
    {id: 3,created: '2016-04-02 15:12:40',content: '3'},
] 

将arr内的数据进行分类,做了一遍后觉得自己代码很臃肿,就仔细的研究了一下,我就直接上成品了

// sort方法对比数字的大小
arr.sort((a,b) =>{
    var da = new Date(a.created)
    var db = new Date(b.created)
    return da.getTime() - db.getTime()
})
console.log(arr);
var map = []
arr.forEach(t =>{
    var d = new Date(t.created)
    var month = d.getMonth()+1
    var f = map.find(m => m.month == `${month}月`)
    if(f){
        return f.data.push(t)
    }
    map.push({
        month: `${month}月`,
        data: [t]
    })
})
console.log(map)

咱们来捋一下哈

包括哪些操作:

(1)排序,created-ok

(2)分组,按照月份来分'created'

(3)数据属性,month,data-ok

最后要的效果再展示一下

var map = [
    {month: '4月', data: [
        {id: 3,created: '2016-04-02 15:12:40',content: '3'},
        {id: 2,created: '2016-04-06 15:12:40',content: '2'}
    ]},
    {month: '5月', data: [
        {id: 1,created: '2016-05-04 15:12:40',content: '1'}
    ]}
]