Javascript 如何按对象属性值对对象数组进行分组?
我有这样的JSON:Javascript 如何按对象属性值对对象数组进行分组?,javascript,arrays,react-native,grouping,Javascript,Arrays,React Native,Grouping,我有这样的JSON: [ { "id": 9, "job_id": 302, "user_id": 63, "message": "User message 1", "created_at": 1584091342 }, { "id": 10, "job_id": 302, "user_id": 63, "message": "User message 2", "created_at": 15840959
[
{
"id": 9,
"job_id": 302,
"user_id": 63,
"message": "User message 1",
"created_at": 1584091342
},
{
"id": 10,
"job_id": 302,
"user_id": 63,
"message": "User message 2",
"created_at": 1584095994
},
{
"id": 14,
"job_id": 302,
"user_id": 63,
"message": "Hello",
"created_at": 1584102257
},
]
如何按日期对邮件进行分组,类似这样的事情?
(我正在使用moment.js格式化unix时间戳)
我们可以使用数组函数reduce来实现: 我们还需要将您的数据从毫秒转换为天
const数据=[
{
“id”:9,
“工作id”:302,
“用户id”:63,
“消息”:“用户消息1”,
“创建时间”:1584130559280
},
{
“id”:10,
“工作id”:302,
“用户id”:63,
“消息”:“用户消息2”,
“创建时间”:1584130559280
},
{
“id”:14,
“工作id”:302,
“用户id”:63,
“留言”:“你好”,
“创建地址”:1584216959280
},
{
“id”:15,
“工作id”:302,
“用户id”:63,
“信息”:“世界”,
“创建地址”:1584216959280
}
]
const groupedData=data.reduce((aggObj,child)=>{
const myDate=新日期(子项创建时间);
//log(myDate.toDateString());
//log(myDate.getTime());
if(aggObj.hasOwnProperty(myDate.toDateString())){
aggObj[myDate.toDateString()].push(子对象);
}否则{
aggObj[myDate.toDateString()]=[child];
}
返回aggObj
}, {})
console.log(groupedData)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}