基于时间排序JSON JS对象
Sorting JSON JS Object based on Time
我有一个JS对象JSON。我需要根据时间
进行排序我已经在时间上做了一些转换,并将SqlTime stamp转换为JS Date时间。
需要根据时间对以下内容进行排序
[
{
"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"
}
]
在数组上使用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);
得到一些参考
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;
}
}
似乎可以
使用排序函数,将其转换为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);
您可以使用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;
});
尝试使用这个排序函数。这对我有用!
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"];
});
}
在创建日期对象后使用getTime()方法并使用过滤器方法。你也可以用moment来比较日期。
但这是简单的:-
array.sort(function(a, b){
return new Date(a.date_time).getTime() < new Date(b.date_time).getTime();
});
按时间排序可以使用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'}}
您可以传递+
或-
来强制按升序或降序排序。
相关文章:
- 排序 JSON 时遇到问题
- 日历数据排序 json 树
- 用JavaScript排序JSON数据
- 从jQuery . getjson()重新排序JSON数据
- 在表中排序JSON数据
- 用AngularJS排序JSON对象数组
- 麻烦排序json对象最接近当前日期与一些值未定义
- 使用javascript升序排序Json对象
- 排序json对象
- 通过在json对象的每个属性中找到的索引来排序json对象的最佳方法是什么?
- 按属性的重要性排序JSON对象数组
- 如何按日期排序json数据
- 如何排序json与两个项目
- 使用jQuery排序JSON对象
- 按类别排序JSON内容
- 当日期不是有效格式时,按日期排序json
- 排序JSON与JavaScript字母顺序之前的数字
- 我如何过滤和排序Json数据
- 排序JSON对象'子键由它们的子键'值
- 按值排序json对象