【发布时间】:2020-04-17 07:45:23
【问题描述】:
初始数组
var array = [
{
"name": "Service-1",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 10
},
{
"name": "Service-2",
"status": "Cancelled",
"startDate": "2020-04-03T00:00:00",
"id": 9
},
{
"name": "DG_3029_Export1",
"status": "Approved",
"startDate": "2020-03-01T00:00:00",
"id": 11
},
{
"name": "DG_3029_Export2",
"status": "Approved",
"startDate": "2020-04-02T00:00:00",
"id": 12
},
{
"name": "Service-10",
"status": "Cancelled",
"startDate": "2020-04-10T00:00:00",
"id": 19
}
];
预期结果:
var array = [
{
"name": "DG_3029_Export2",
"status": "Approved",
"startDate": "2020-04-02T00:00:00",
"id": 12
},
{
"name": "DG_3029_Export1",
"status": "Approved",
"startDate": "2020-03-01T00:00:00",
"id": 11
},
{
"name": "Service-10",
"status": "Cancelled",
"startDate": "2020-04-10T00:00:00",
"id": 19
},
{
"name": "Service-2",
"status": "Cancelled",
"startDate": "2020-04-03T00:00:00",
"id": 9
},
{
"name": "Service-1",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 10
}
];
按日期降序排序(这是我到目前为止能够实现的)
var array = [
{
"name": "Service-10",
"status": "Cancelled",
"startDate": "2020-04-10T00:00:00",
"id": 19
},
{
"name": "Service-2",
"status": "Cancelled",
"startDate": "2020-04-03T00:00:00",
"id": 9
},
{
"name": "Service-1",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 10
},
{
"name": "DG_3029_Export2",
"status": "Approved",
"startDate": "2020-04-02T00:00:00",
"id": 12
},
{
"name": "DG_3029_Export1",
"status": "Approved",
"startDate": "2020-03-01T00:00:00",
"id": 11
}
];
小提琴: https://jsfiddle.net/fierce_trailblazer/gs9ek0oz/
我的目标是按日期排序,然后在开头显示所有状态为“已批准”的对象
是否可以使用 javascript sort 按日期和附加参数进行排序?
var array = [{
"name": "Service-1",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 10
},
{
"name": "DG_3029_Export1",
"status": "Approved",
"startDate": "2020-03-01T00:00:00",
"id": 11
},
{
"name": "DG_3029_Export2",
"status": "Approved",
"startDate": "2020-04-02T00:00:00",
"id": 12
},
{
"name": "Service-10",
"status": "Cancelled",
"startDate": "2020-04-10T00:00:00",
"id": 19
},
{
"name": "DG_Export3",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 13
},
{
"name": "Service-5",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 14
},
{
"name": "Service-6",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 15
},
{
"name": "Service-7",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 16
},
{
"name": "DG_Export4",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 17
},
{
"name": "DG_Export5",
"status": "Cancelled",
"startDate": "2020-04-02T00:00:00",
"id": 18
}
];
array.sort((a, b) =>
new Date(b.startDate) - new Date(a.startDate)
)
for (let i = 0; i < array.length; i++) {
console.log("Id:\t" + array[i].id + "\tStatus:\t" + array[i].status + "\tDate:\t" + array[i].startDate.substring(1, 10));
}
【问题讨论】:
-
请在问题本身中添加minimal reproducible example,而不仅仅是指向外部资源的链接。
标签: javascript sorting date parameters