[英]How to map data to a new array with specific fields and values and add a single object per day based on a range of dates
[英]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.