在JS里有数组,数组里有N个Object对象,object里面有日期,按日期进行数组排序,怎么做? 可以弄一个demo
var obj=[{
name:'zhangsan',
birthday:'2017-01-02'
},{
name:'lisi',
birthday:'2017-02-03'
},{
name:'wangwu',
birthday:'2016-02-03'
}]
function sortDate(v1,v2){
return v1.birthday>v2.birthday
}
console.info(JSON.stringify(obj.sort(sortDate)))
给一个排序函数就可以,如果日期格式不是这种格式的话,可以用Date函数来转成标准的日期来比较
json数据?
data = {
"rows": [{
"name": "张三",
"time": "2011/4/1 0:00:00",
},{
"name": "李四",
"time": "2015/5/6 12:30:00",
},{
"name": "王五",
"time": "2012/10/1 22:10:00",
},{
"name": "赵六",
"time": "2011/9/1 22:10:00",
}]
};
var rows = data.rows;
rows.sort(function(a,b){
return Date.parse(a.time) - Date.parse(b.time);//时间正序
});
for(var i =0,l=rows.length;i<l;i++){
console.log(rows[i].name + " | " + rows[i].time);
}
张三 | 2011/4/1 0:00:00
赵六 | 2011/9/1 22:10:00
王五 | 2012/10/1 22:10:00
李四 | 2015/5/6 12:30:00
控制台可以看见排序结果:
var jsonArr = [
{date : "2017-8-3 13:50:56" , key:"XX"},
{date : "2017-8-2 11:50:56" , key:"XX"},
{date : "2017-7-5 13:52:56" , key:"XX"},
{date : "2017-11-3 13:50:56" , key:"XX"},
{date : "2017-2-3 12:50:56" , key:"XX"},
{date : "2017-8-3 14:58:56" , key:"XX"}
];
//排序
jsonArr.sort(function(a,b){
debugger;
if(typeof(a) == "object" && typeof(b) == "object"){
return new Date (a['date']).getTime() > new Date (b['date']).getTime() ? 1 : -1; //正序 , a['date'] date是时间列的列名
//return new Date (a['date']).getTime() > new Date (b['date']).getTime() ? -1 : 1; //倒叙 ,
}
});
console.log(jsonArr);