如何根据单个数组元素中的重复日期过滤数据
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":"hello6" } ]
但我想要新的筛选数组,如下所示
[ {
"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);
这是我已有的对象数组类型
[ { "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" } ]
但我想要新的筛选数组,如下所示
[ { "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);