初学者。
我想按日期和时间值对整个对象数组进行排序。最新的日期和时间。
我的问题。
不确定如何按日期和时间对不同的键值进行排序。
示例:我的关键值为开始,停止和转为。我想按日期和时间对此进行排序。我仍然希望将键值保留为对该值的引用。
{
"start 0": "2017-10-24T03:15:36Z",
"start 1": "2017-10-24T09:13:44Z",
"start 2": "2017-10-24T15:41:27Z",
"stop 0": "2017-10-23T21:40:27Z",
"stop 1": "2017-10-24T03:47:20Z",
"stop 2": "2017-10-24T09:42:34Z",
"turn 0": "2017-10-22T16:02:51Z",
"turn 1": "2017-10-23T22:13:56Z",
"turn 2": "2017-10-23T03:19:20Z"
}
我正在使用moment.js
提前致谢
答案 0 :(得分:0)
{
"start 0": "2017-10-24T03:15:36Z",
"start 1": "2017-10-24T09:13:44Z",
"start 2": "2017-10-24T15:41:27Z",
"stop 0": "2017-10-23T21:40:27Z",
"stop 1": "2017-10-24T03:47:20Z",
"stop 2": "2017-10-24T09:42:34Z",
"turn 0": "2017-10-22T16:02:51Z",
"turn 1": "2017-10-23T22:13:56Z",
"turn 2": "2017-10-23T03:19:20Z"
}
是一个对象,由于javascript对象没有顺序,因此排序没有意义
答案 1 :(得分:0)
你拥有的是一个对象,但如果我们假设你有以下数组: var datesArr = [“2017-10-24T03:15:36Z”,“2017-10-24T03:15:36Z”,“2017-10-24T15:41:27Z”];
为了对这些进行排序,您需要的是: datesArr.sort((a,b)=>新日期(b) - 新日期(a))
答案 2 :(得分:0)
试试这个
res =
{ 'start 0': '2017-10-24T03:15:36Z',
'start 1': '2017-10-24T09:13:44Z',
'start 2': '2017-10-24T15:41:27Z',
'stop 0': '2017-10-23T21:40:27Z',
'stop 1': '2017-10-24T03:47:20Z',
'stop 2': '2017-10-24T09:42:34Z',
'turn 0': '2017-10-22T16:02:51Z',
'turn 1': '2017-10-23T22:13:56Z',
'turn 2': '2017-09-23T03:19:20Z' }
// console.log(res);
myarr = []
Object.keys(res).forEach( key => {
console.log(key+" = "+res[key]);
myarr.push({ 'key': key, 'stamp': res[key]});
}
);
// console.log(myarr);
myarr.sort(function(a, b) {
return new Date(a.stamp) - new Date(b.stamp) > 0;
})
// console.log(sorted);
for(var i in myarr){
console.log(myarr[i]);
}
repl link
答案 3 :(得分:0)
var array=[{
"date": "2017-10-24T03:15:36Z"},
{"date": "2017-10-24T09:13:44Z"},
{"date": "2017-10-24T15:41:27Z"},
{"date": "2017-10-23T21:40:27Z"},{
"date": "2017-10-23T03:19:20Z"}
]
array.sort(function(a,b){
return new Date(b.date) - new Date(a.date);
});
尝试这样的事情,每个对象中的键应该相同