我遇到一个奇怪的问题,即日期数组未完全排序。数组的大多数似乎正确排序,但是奇怪的是,数组中的前两个元素未排序或排序不正确。
代码:
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)
我期望的是:["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"]
上面的代码似乎应该可以正常工作,并且似乎在大多数情况下都可以。我应该在这里做些什么以使测试数组中的日期从最旧到最新排序?我只是不了解如何对带有日期的数组进行排序甚至可以工作?
谢谢。
答案 0 :(得分:5)
awk
中的函数处理程序应该有两个参数,并且当第一个元素大于第二个元素时返回sort
,当第一个元素小于第二个元素时返回positive number
,如果它们小于则返回0。一样。
因此代码应为:
negative number