按日期和时间升序排列数组
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 个项目的函数,returns negative/zero/positive 值根据您的自定义比较要求。 .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);
我有一个未排序格式的数组。 即
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 个项目的函数,returns negative/zero/positive 值根据您的自定义比较要求。 .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);