javascript - Chome Array.sort 和 FF 之间的区别

标签 javascript

这个简单:

list.sort(function(a, b){return a.priority < b.priority;});

其中列表项类似于 {priority: 2, foo: "bar"}

在两个主要浏览器上的行为不一样,我做错了什么?

http://jsfiddle.net/8NCXr/1/

enter image description here

最佳答案

您应该在 sort() 函数中返回一个数字而不是 bool 值:1、0 或 -1。这些数字表示比较元素应行进的方向(向上、停留或向下)。 bool 值不会为您提供这种控制,因此很可能取决于浏览器如何处理它(因此使其在浏览器之间有所不同)。

查看 Array.prototype.sort 上的文档.

假设升序排序:

list.sort(function(a, b){
  return a.priority > b.priority ? 1
       : a.priority < b.priority ? -1
       : 0;
});

// yields priorities of: [-8,-7,-3,0,1,3,12,29,30,200,1992]

关于javascript - Chome Array.sort 和 FF 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20426085/

相关文章:

javascript - 在 jQuery 中追加字符串变量

Javascript:使用 eval() 动态加载函数

javascript - AngularJS $stateparams

javascript - 如何在功能组件中混合使用 useCallback 和 useRef

javascript - 使 JS 幻灯片的第一张幻灯片持续时间更长

javascript - IndexedDB 视频二进制文件已损坏

javascript - 为什么将 jQuery 作为参数传递给 (function($){..})(jQuery) 闭包包装器,而不是本地变量?

javascript - 是否有空函数的名称?

javascript - 发布包含 javascript 变量或函数的隐藏字段?

javascript - 为什么 jQuery 和 Backbone.js 的 $ 语法有效?