【问题标题】:Explain why Array.sort Act this way解释为什么 Array.sort 这样做
【发布时间】:2014-02-06 09:21:11
【问题描述】:

当我们尝试对数字数组进行排序时,人们会说使用这个

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
   debugger;
   return (a > b) ? (1) : (-1);
});
debugger;
print(numbers);

如果我们在调试器模式下观察参数 a,b,我们会看到以下内容

4,2
4,5
1,3
5,1
2,1
2,3
4,3

我需要从内部了解或解释排序函数的工作原理才能给我这些参数???或者我需要有人解释发生了什么?

【问题讨论】:

  • 为什么需要这个?比较器调用的确切顺序不重要也不可靠。
  • 就我个人而言,我认为这是我 DGAF 的工作原理之一 XD
  • @NiettheDarkAbsol 如果排序功能与所有浏览器不兼容,请不要这样做;)您需要知道原型才能实现。

标签: javascript arrays


【解决方案1】:

我用这个:

var num = [4,2,5,1,3];
num.sort(function(a,b){return a-b;});

【讨论】:

  • 它几乎与您刚刚添加结果可能为零的情况相同,在这种情况下不会发生任何排序,这不是我问题的答案
  • 但它更好...但是除了好奇之外,可能没有充分的理由研究本机代码。 gist.github.com/Pewpewarrows/964673
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多