按日期和时间升序对数组进行排序
Sort array by date and time in ascending order
我有一个未排序的数组。即
var _dateArray = [
{ startTime : 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 17:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 19:15:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 21:00:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 16:45:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 17:15:00 GMT+0530 (IST)' },
];
我想像这种格式的一样对这个数组进行排序
var _dateArray = [
{ startTime : 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 16:45:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 17:15:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 17:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 19:15:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' },
{ startTime : 'Sat Feb 21 2015 20:00:00 GMT+0530 (IST)' ,endTime : ' Sat Feb 21 2015 21:00:00 GMT+0530 (IST)' },
];
你能告诉我如何实现这个功能吗?
谢谢。
您需要使用带有自定义比较器的JavaScript函数.sort()
,在该比较器中您将解析开始日期并进行比较。
自定义比较器是一个接收2个项目的函数,并根据您的自定义比较要求返回负值/零值/正值。.sort()
函数使用提供的比较器,并在排序过程中使用它来比较元素:
var _dateArray = [{
startTime: 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)'
}, {
startTime: 'Sat Feb 21 2015 19:00:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 20:00:00 GMT+0530 (IST)'
}, {
startTime: 'Sat Feb 21 2015 17:00:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 19:15:00 GMT+0530 (IST)'
}, {
startTime: 'Sat Feb 21 2015 20:00:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 21:00:00 GMT+0530 (IST)'
}, {
startTime: 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 16:45:00 GMT+0530 (IST)'
}, {
startTime: 'Sat Feb 21 2015 16:30:00 GMT+0530 (IST)',
endTime: ' Sat Feb 21 2015 17:15:00 GMT+0530 (IST)'
}];
//this is our comparator function
function DateComparator(dateAPair, dateBPair) {
var DateA = new Date(dateAPair.startTime);
var DateB = new Date(dateBPair.startTime);
if (DateA < DateB) {
return -1;
} else if (DateA > DateB) {
return 1;
} else {
return 0;
}
}
console.log(_dateArray);
_dateArray.sort(DateComparator);
console.log(_dateArray);
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序