Javascript 10个元素的数组正在排序,但100个元素的数组没有排序

Javascript 10个元素的数组正在排序,但100个元素的数组没有排序,javascript,knockout.js,Javascript,Knockout.js,我有一个具有计算属性的淘汰应用程序 this.sortedItems = ko.computed(function() { return self.allItems().sort(function(a, b) { return a.name() > b.name(); }); }, this); 我有一个10个数组项目的应用程序,所有的东西都在开始时排序,当一个项目被更改时也会排序-工作正常 然后我有完全相同的代码,但是有100个项目,没有排序-它在开

我有一个具有计算属性的淘汰应用程序

  this.sortedItems = ko.computed(function() {
    return self.allItems().sort(function(a, b) {
        return a.name() > b.name();
    });
}, this);
我有一个10个数组项目的应用程序,所有的东西都在开始时排序,当一个项目被更改时也会排序-工作正常

然后我有完全相同的代码,但是有100个项目,没有排序-它在开始时没有排序,在项目更改时也没有排序


这可能是什么原因

对于排序数字,返回差值,因为这是正确的方法

return self.allItems().sort(function(a, b) {
    return a.name() -b.name();
});


请检查以下取自的描述:

如果提供了compareFunction,则将根据compare函数的返回值对数组元素进行排序。如果a和b是要比较的两个元素,则:

  • 如果比较函数(a,b)小于0,则将a排序为低于b的索引,即a排在第一位
  • 如果compareFunction(a,b)返回0,则保持a和b彼此不变,但根据所有不同的元素进行排序。注意:ECMAscript标准不保证这种行为,因此并非所有浏览器(例如,至少可以追溯到2003年的Mozilla版本)都遵守这一点
  • 如果比较函数(a,b)大于0,则将b排序为比a低的索引
  • 当给定一对特定的元素a和b作为其两个参数时,compareFunction(a,b)必须始终返回相同的值。如果返回不一致的结果,则未定义排序顺序