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)必须始终返回相同的值。如果返回不一致的结果,则未定义排序顺序