我有一个JS对象JSON。我需要根据时间对此进行排序
我按时完成了一些转换,并将SqlTime标记转换为JS Date time。
需要根据时间对下面进行排序
mockClassObj
答案 0 :(得分:1)
使用阵列上的filter
功能:
var a = [
{
"file_name":"150412-001070",
"date_time":"2013-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-04-26T22:03:00.000Z"
},
{"file_name":"150412-001070",
"date_time":"2014-07-21T14:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-05-26T22:03:00.000Z"
},
{"file_name":"150412-001070",
"date_time":"2017-07-21T18:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-05-26T22:03:00.000Z"
},
{"file_name":"150412-001070",
"date_time":"2010-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-05-26T22:03:00.000Z"
}
]
var b = a.sort(function(x,y){
return new Date(x.date_time).getTime() - new Date(y.date_time).getTime();
})
console.log(b);

答案 1 :(得分:1)
获得了一些参考
function sort(jsonArray, key){
if(jsonArray){
var sortedArray = jsonArray.sort(function(left, right) {
//array.sort is buit-in function
var a = left[key];
var b = right[key];
if (a !== b) {
if (a > b || a === void 0) return 1;
if (a < b || b === void 0) return -1;
}
return 0;
});
return sortedArray;
}
}
似乎有效
答案 2 :(得分:1)
使用sort函数,将其转换为js date obj。
var array=[
{
"file_name":"150412-001070",
"date_time":"2015-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-04-26T22:03:00.000Z"
},
{"file_name":"150412-001070",
"date_time":"2015-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-05-26T22:03:00.000Z"
}
];
console.log(array);
var sortedArray=array.sort(function(a,b){
return new Date(a.file_ts)- new Date(b.file_ts);
})
console.log(sortedArray);
答案 3 :(得分:0)
您可以使用sort()
为阵列提供自定义排序功能
yourjsonobject.sort(function(a, b) {
if (a.date_time < b.date_time) {
return -1;
}
if (a.date_time > b.date_time) {
return 1;
}
return 0;
});
答案 4 :(得分:0)
尝试使用此排序功能。这个对我有用!
var files= [
{
"file_name":"150412-001070",
"date_time":"2015-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-04-26T22:03:00.000Z"
},
{
"file_name":"150412-001070",
"date_time":"2015-07-21T13:11:55.000Z",
"polpospercent":68.95,"polnegpercent":31.05,
"Anger":6.58,
"Surprise":32.87,
"Sadness":32.87,
"Joy":4.59,
"Disgust":13.84,
"Fear":9.26,
"file_ts":"2014-05-26T22:03:00.000Z"
}
];
function sortFiles() {
files = files.sort(function(a, b) {
return a["file_ts"]- b["file_ts"];
});
}
答案 5 :(得分:0)
创建日期对象后,只需使用getTime()方法并使用过滤器方法即可。 您也可以将矩用于日期比较。
这是简单的东西:-
array.sort(function(a, b){
return new Date(a.date_time).getTime() < new Date(b.date_time).getTime();
});
答案 6 :(得分:-2)
要按时间顺序,您可以使用orderBy
运算符。
orderBy
使用表达式过滤特定数组。
{{[
{
"file_name": "150412-001070",
"date_time": "2015-07-21T13:11:55.000Z",
"polpospercent": 68.95,
"polnegpercent": 31.05,
"Anger": 6.58,
"Surprise": 32.87,
"Sadness": 32.87,
"Joy": 4.59,
"Disgust": 13.84,
"Fear": 9.26,
"file_ts": "2014-04-26T22:03:00.000Z"
},
{
"file_name": "150412-001070",
"date_time": "2015-07-21T13:11:55.000Z",
"polpospercent": 68.95,
"polnegpercent": 31.05,
"Anger": 6.58,
"Surprise": 32.87,
"Sadness": 32.87,
"Joy": 4.59,
"Disgust": 13.84,
"Fear": 9.26,
"file_ts": "2014-05-26T22:03:00.000Z"
}
] | orderBy : '+date_time'}}
您可以传递+
或-
来强制按升序或降序排序。