sort()方法只能对0~9以内的值排序,大于9的值就不能排序。因为sort()是根据ASCLL码进行排序的,并不根据数值大小排序。所以需要使用sort()的返回值排序。
例:
snapshotObj.sort((a, b) => {
if(a.lastNewsDate && b.lastNewsDate){
return new Date(a.lastNewsDate).getTime() -
new Date(b.lastNewsDate).getTime() < 0? 1 : -1;
}else if(a.lastNewsDate && !b.lastNewsDate){
return -1;
}
return 1;
})
sort每执行一次,会判断返回值并调换两个参数a、b在原数组中的位置。
1. 使用负数 ,将a调换在b之前。
2. 使用正数 ,将b调换在a之前。