我有一个接受一组对象的函数,我需要按天对数组进行排序;它看起来像这样:
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'
答案 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
将是正确的数组,将成功排序。