javascript - OrderBy 在 Chrome 中的排序方式与其他浏览器不同

标签 javascript angularjs google-chrome sorting

我注意到 Chrome 中的 orderBy 与其他浏览器中的排序方式不同。

我正在为 Angular 1.3 中的一个项目写作。

Chrome 排序: Chrome

IE 10 排序: enter image description here

没有关于特定浏览器的特殊逻辑,两个数组完全相同。

谓词明确定义:

$scope.predicate = 'style';
$scope.reverse = true;

我的 ng-repeat 看起来像这样:

<tr ng-repeat="line in model.resultList | orderBy:predicate:reverse">

我的代码没有什么特别或不同之处。但是,“大小”是字符串(例如大小:“8-”,...,大小:“6”,...)。为什么这种排序在 Chrome 上与在所有其他浏览器上完全不同?

我的所有结果都是从后端按样式组排序的 #,然后按大小升序排列。当在 Angular 上设置主要排序时,在本例中为 Style,Chrome 会混合已经排序的大小。请看下面的Plnk(在Chrome和IE/FireFox中打开看看区别)

http://plnkr.co/edit/6TO8pZZ8jZ8Tytw6wHpQ?p=preview

最佳答案

没有错。由于您按其他字段排序 - 大小可以以任何方式洗牌。 orderBy 依赖于浏览器内置的排序功能(source)。浏览器实现可能不同。并且排序应该不稳定( MDNES2015 Standard section )。

如果您想实现一致的行为,请使用按多个字段排序。喜欢

orderBy:[predicate, 'size']:reverse

关于javascript - OrderBy 在 Chrome 中的排序方式与其他浏览器不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37190016/

相关文章:

javascript - 如何在 Angular 中以 json 形式发送值?

FireFox 中的 Javascript 错误不在 IE 和 Chrome 中

javascript - CSS 过渡仅在第一次应用时有效

javascript - 带有外部链接的 AngularJS 按钮

javascript - 输入错误后如何清除输入字段

java - 根据selenium中的选项组选择特定选项

javascript - Chrome加载jquery后导致页面加载延迟的原因是什么?

google-chrome - 显示框阴影 :table-row-group failing in Chrome

javascript - 为 Mongoose 运行多个 Mocha 测试文件被打破

javascript - 使用 ZingChart 的堆积图