一、业务场景
有一个对象数组,每个对象中有一个日期属性,需要比较日期大小,实现升序输出。
二、实现方式
利用sort函数。
三、详细说明
1、简单数组的排序示例--升序
//简单用法
[2,6,3,88,45].sort();
//输出
[2, 3, 45, 6, 88]
//说明
如果只用sort()函数,默认升序排序
2、简单数组的排序示例--降序
//写法示例
[2,6,3,88,45].sort(function(a,b)
{ if(a>b){
return -1
}else if(a<=b){
return 1}
})
//输出
[88, 45, 6, 3, 2]
//说明
sort函数的参数是一个函数。该函数有两个参数a,b(可以任意指定),a在b的前面,通过比较大小,如果返回值大于0,则互换a,b的位置;如果返回值小于0,则不互换位置。
上述示例,如果a>b 返回1,则实现的效果是升序
3、对象数组的示例--降序
timeList = timeList.sort(function (val1, val2) {
if (!isNaN(Number(val1.date)) && !isNaN(Number(val2.date))) {
val1.date = Number(val1.date);
val2.date = Number(val2.date);
}
if (val1.date < val2.date) {
return 1;
} else if (val1.date > val2.date) {
return -1;
} else {
return 0;
}
})
//说明
timeList:对象数组
date:timeList中对象的属性