JavaScript-对JSON字符串中的数组元素进行排序
如何使用JavaScript对下面的JSON字符串进行排序 输入:JavaScript-对JSON字符串中的数组元素进行排序,javascript,json,sorting,Javascript,Json,Sorting,如何使用JavaScript对下面的JSON字符串进行排序 输入: [{time:'1 hours ago'}, {time:'10 minutes ago'}, {time:'2 minutes ago'}] 输出: [{time:'2 minutes ago'}, {time: '10 minutes ago'}, {time:'1 hours ago'}] 这是一个粗略的样品 var getVal = function(timeStr){ var arr = timeStr.s
[{time:'1 hours ago'}, {time:'10 minutes ago'}, {time:'2 minutes ago'}]
输出:
[{time:'2 minutes ago'}, {time: '10 minutes ago'}, {time:'1 hours ago'}]
这是一个粗略的样品
var getVal = function(timeStr){
var arr = timeStr.split(" ");
var factor = 1;
switch(arr[1]){
case "minutes":factor = 1; break;
case "hours" :factor = 60; break;
case "days" :factor = 1440;break;
}
return parseInt(arr[0]) * factor;
}
var tgt = [{time:'2 minutes ago'}, {time: '10 minutes ago'}, {time:'1 hours ago'}];
tgt.sort(function(a,b){
return getVal(a.time) - getVal(b.time);
});
console.log(tgt);
当它以
String
格式表示时,您将很难对其进行排序。是否有任何原因说明它不是unix时间戳格式?使用Number
类型进行排序要容易得多,因为您希望它从最新到最旧。解析像“2分钟前”这样的字符串将导致JS中的日期无效。您可能需要考虑将输入值更改为一些有效的时间戳格式。阅读。使用JS,您需要将语言转换为数字,例如:分钟->2,10,60(这里1小时转换为分钟,条件是小时数*60,等等),这将使排序任务更容易,数据更统一