繁体   English   中英

如何根据单个数组元素中的重复日期过滤数据

[英]How to filter data as per repeat dates in single array element

这是我已经拥有的对象数组类型

[ { "date":"12-09-2019 12:00 PM", "id":"1", "name":"hello1" }, { "date":"12-09-2019 03:00 PM ", "id":"2", "name":"hello2" }, { "date":"12-09-2019 07:00 PM", "id":"3", "name":"hello3 " }, { "date":"13-09-2019 08:00 AM", "id":"4", "name":"hello4" }, { "date":"14-09-2019 10: 00 AM", "id":"5", "name":"hello5" }, { "date":"14-09-2019 11:30 PM", "id":"6", "name": “你好6”}]

但我想要新的过滤数组,如下所示

[ { "date": "12-09-2019", "data": [ { "id": "1", "name": "hello1" }, { "id": "2", "name": "hello2" }, { "id": "3", "name": "hello3" } ] }, { "date": "13-09-2019", "data": [ { "id": "4 ", "name": "hello4" } ] }, { "date": "14-09-2019", "data": [ { "id": "5", "name": "hello5" }, { "id": "6", "name": "hello6" } ] } ]

请大家帮我解决这个问题。

这是我到目前为止所做的

public data: any;
    public dateGroupArr: any = [];

    this.data.forEach((item, index) => {
      dataArr = item;
      dateGroupArr[item['date']]['date'] = item['date'];
      dataArr.splice(dataArr['date']);
      dateGroupArr[item['date']]['data'] = dataArr;
    });

谢谢

我希望这有帮助

 var data = [ { date: "12-09-2019 12:00 PM", id: "1", name: "hello1" }, { date: "12-09-2019 03:00 PM", id: "2", name: "hello2" }, { date: "12-09-2019 07:00 PM", id: "3", name: "hello3" }, { date: "13-09-2019 08:00 AM", id: "4", name: "hello4" }, { date: "14-09-2019 10:00 AM", id: "5", name: "hello5" }, { date: "14-09-2019 11:30 PM", id: "6", name: "hello6" } ].map(item => moment(item.updatedAt).format("YYYY-MM-DD")); var dateList = [...new Set(data.map(item => item.date.split(" ")[0]))]; // please put this var finalList = dateList.map(item => ({ date: item, data: data.filter(_item => _item.date.includes(item)) })); console.log(finalList);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM