Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sort()如何在JavaScript中工作?_Javascript - Fatal编程技术网

sort()如何在JavaScript中工作?

sort()如何在JavaScript中工作?,javascript,Javascript,可能重复: 我想知道.sort()在JavaScript中是如何工作的。它使用什么算法 function sortNumber(a, b) { return a-b; } var n = ["1", "5", "40", "2", "9", "3"]; document.write(n.sort(sortNumber)); 在Firefox4中,元素被转换成数字并按这种方式排序。 在您的情况下,这是升序 到目前为止,我没有在其他浏览器中测试它。这个问题得到了回答 Mozilla使用合

可能重复:

我想知道
.sort()
在JavaScript中是如何工作的。它使用什么算法

function sortNumber(a, b) {
   return a-b;
}

var n = ["1", "5", "40", "2", "9", "3"];
document.write(n.sort(sortNumber));

在Firefox4中,元素被转换成数字并按这种方式排序。 在您的情况下,这是升序


到目前为止,我没有在其他浏览器中测试它。

这个问题得到了回答

Mozilla使用合并排序,Webkit使用选择排序,IE是封闭源代码,很难说


语言规范对实现使用的算法没有任何要求,您的代码也不应该太在意它。

100元素测试数组的比较次数:

狩猎5-541
歌剧11.10-586
Firefox 4-601
IE 9-618
铬9-783

对于1000单元测试阵列:

Safari 5-8700
Firefox 4-8998
歌剧院11.10-9137
IE 9-11055
铬9-11536


它没有描述算法,但仍然显示了一些有趣的数据。

我为您修复了格式。下次请使用预览窗格。“如何
.sort()
工作”以何种方式?它分类。精确算法可能由实现定义。你还想知道什么?嗨,托玛拉克,谢谢你做格式化。我想知道.sort()函数使用的是哪种算法。那么你的问题是重复的。元素不会转换成数字。元素不会改变。表达式
a-b
计算数值结果,仅此而已。