javascript按日期排序对象数组

时间:2012-03-21 15:45:53

标签: javascript

我有一个接受一组对象的函数,我需要按天对数组进行排序;它看起来像这样:

function Myfunction (TheDays) {

  var TheDaysToSort = $.extend(false, TheDays);

  function SortOrder (a, b) {
     var Day1 = a['TheDate'];
     var Day2 = b['TheDate'];
     return Day1 - Day2;
  };

  TheDaysToSort.sort(SortOrder);
}

我收到错误Uncaught TypeError: Object #<Object> has no method 'sort'

2 个答案:

答案 0 :(得分:3)

您可以在数组上使用.sort()。您不能.sort()一个对象,因为对象没有对其属性的顺序,因此没有.sort()方法。

如果TheDays是一个数组,那么就不清楚你要对$.extend(false, TheDays);代码行做些什么了。如果您可以解释应该做什么,我们可能会帮助您应该做什么,以便TheDaysToSort是您排序的数组。

例如,如果您只想制作TheDays的副本,那么我建议使用此行代替.extend()行:

var TheDaysToSort = TheDays.slice(0);  // make copy of array for sorting

答案 1 :(得分:0)

您应该使用:

 var TheDaysToSort = $.extend([], TheDays);

然后TheDaysToSort将是正确的数组,将成功排序。