后台返回的数据JS根据日期分组,怎么处理?

比如有数据:
[
{time:'2017-12-07',title:'现在天气冷了'},
{time:'2017-12-07',title:'什么时候变热'},
{time:'2017-12-08',title:'什么时候过年'},
{time:'2017-12-08',title:'春节放假怎么安排'},
]
然后想要的效果是

clipboard.png

阅读 3.8k
4 个回答
var arr = [
  {time:'2017-12-07',title:'现在天气冷了'},
  {time:'2017-12-07',title:'什么时候变热'},
  {time:'2017-12-08',title:'什么时候过年'},
  {time:'2017-12-08',title:'春节放假怎么安排'},
]
var json = {}
arr.forEach(function(v){
    if(json[v.time]){
        json[v.time].push(v.title);
    }else{
        json[v.time] = [v.title];
    }
})
console.log(json)//{"2017-12-07":["现在天气冷了","什么时候变热"],"2017-12-08":["什么时候过年","春节放假怎么安排"]}

我只是写一个大概
就是个双层循环

var str = "";
for(var key in json){
   str+=`<h1>${key}</h1>`;
   str+=`<div>`;
   for(var i=0;i<json[key].length;i++){
       str+=`<p>${json[key][i]}</p>`
   }
   str+=`</div>`;
}
console.log(str)
/*
<h1>2017-12-07</h1>
<div>
    <p>现在天气冷了</p>
    <p>什么时候变热</p>
</div>
<h1>2017-12-08</h1>
<div>
    <p>什么时候过年</p>
    <p>春节放假怎么安排</p>
</div>
*/

Lodash.groupBy

日期当作key,值是一个数组,判断存不存在这个key,不存在就创建,存在就值push进数组里。

推荐问题
宣传栏