排序日期数组的麻烦

Dev*_*DW2 0 javascript

我有一个奇怪的问题,就是日期数组未完全排序。数组的大多数似乎正确排序,但是奇怪的是,数组中的前两个元素未排序或排序不正确。

码:

var arrSortTest = ["July 11, 1960", "February 1, 1974", "July 11, 1615", "October 18, 1851", "November 12, 1995"];

for (var i = 0; i < arrSortTest.length; i++) {
  arrSortTest.sort(function(i) {
    var temp = new Date(i);
    return temp
  });
}
console.log(arrSortTest)
Run Code Online (Sandbox Code Playgroud)

我的期望: ["July 11, 1615", "October 18, 1851", "July 11, 1960", "February 1, 1974", "November 12, 1995"]

我得到的是: ["October 18, 1851", "July 11, 1615", "July 11, 1960", "February 1, 1974", "November 12, 1995"]

上面的代码似乎应该可以正常工作,并且似乎在大多数情况下都可以。我应该在这里做些什么以使测试数组中的日期从最旧到最新排序?我只是不了解如何对带有日期的数组进行排序?

先感谢您。

Jul*_*Liu 5

中的函数处理函数sort应具有两个参数,并positive number在第一个元素大于第二个元素,negative number第一个小于第二个元素时返回,而在它们相同时返回0。

因此,代码应为:

var arrSortTest = ["July 11, 1960", "February 1, 1974", "July 11, 1615", "October 18, 1851", "November 12, 1995"];

arrSortTest.sort(function(i, j) {
  return new Date(i).getTime() - new Date(j).getTime();
});

console.log(arrSortTest)
Run Code Online (Sandbox Code Playgroud)