Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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
Javascript Array.sort在不同浏览器中的稳定性_Javascript - Fatal编程技术网

Javascript Array.sort在不同浏览器中的稳定性

Javascript Array.sort在不同浏览器中的稳定性,javascript,Javascript,这是一个老问题,我想如果我们在这里收集最新的数据会有所帮助。 请按一下这把小提琴 并分享您的结果 小提琴代码: a = [] for(var i = 0; i < 1000; i++) { a.push({'key':100 + Math.round(Math.random() * 100), 'val': i + 1000 }) } a.sort(function(x, y) { return x.key - y.key }) b = [] for(var i = 0; i

这是一个老问题,我想如果我们在这里收集最新的数据会有所帮助。 请按一下这把小提琴

并分享您的结果

小提琴代码:

a = []
for(var i = 0; i < 1000; i++) {
    a.push({'key':100 + Math.round(Math.random() * 100), 'val': i + 1000 })
}

a.sort(function(x, y) { return x.key - y.key })

b = []
for(var i = 0; i < 1000; i++) {
    b.push(a[i].key * 10000 + a[i].val);
}

c = b.slice(0)
b.sort()
stable = (b.join() === c.join())

document.body.innerHTML = navigator.userAgent.toString() + "<br>" + (stable ? "stable": "UNSTABLE")
a=[]
对于(变量i=0;i<1000;i++){
a、 push({'key':100+Math.round(Math.random()*100),'val':i+1000})
}
a、 排序(函数(x,y){返回x.key-y.key})
b=[]
对于(变量i=0;i<1000;i++){
b、 推送(a[i].key*10000+a[i].val);
}
c=b.slice(0)
b、 排序()
稳定=(b.join()==c.join())
document.body.innerHTML=navigator.userAgent.toString()+“
”+(稳定?“稳定”:“不稳定”)
稳定浏览器OS完整UA字符串 不稳定的Safari 5.3 OS X Lion(10.7.5)Mozilla/5.0(Macintosh;英特尔Mac OS X 10_7_5)AppleWebKit/536.29.13(KHTML,类似Gecko)版本/6.0.4 Safari/536.29.13 稳定的Firefox 15.0.1 OS X Lion Mozilla/5.0(Macintosh;英特尔Mac OS X 10.7;rv:15.0)Gecko/20100101 Firefox/15.0.1 不稳定的Chrome 21 OS X Lion(10.7.5)Mozilla/5.0(Macintosh;英特尔Mac OS X 10_7_5)AppleWebKit/537.1(KHTML,像Gecko)Chrome/21.0.1180.79 Safari/537.1 稳定的Firefox 16 Win 7 Mozilla/5.0(Windows NT 6.1;rv:16.0)Gecko/20100101 Firefox/16.0 不稳定的Chrome 26 Win 7 x64 Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.31(KHTML,如Gecko)Chrome/26.0.1410.64 Safari/537.31 不稳定的IE 9.0 Win 7 x64 Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;InfoPath.3;.NET4.0E) 稳定的Firefox 20 Win 7 x64 Mozilla/5.0(Windows NT 6.1;WOW64;rv:20.0)Gecko/20100101 Firefox/20.0 不稳定的IE 10 Win 7 Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;Trident/6.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;InfoPath.3;.NET4.0C;.NET4.0E) 不稳定的Chrome 26 Win 7 Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.31(KHTML,如Gecko)Chrome/26.0.1410.64 Safari/537.31 稳定的Firefox 20 Win 8 x64 Mozilla/5.0(Windows NT 6.2;WOW64;rv:20.0)Gecko/20100101 Firefox/20.0 不稳定的IE 10 Win 8 x64 Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.2;WOW64;Trident/6.0;.NET4.0E;.NET4.0C;.NETCLR 3.5.30729;.NETCLR 2.0.50727;.NETCLR 3.0.30729;TabletPC 2.0) 不稳定的Chrome 26 Win 8 x64 Mozilla/5.0(Windows NT 6.2;WOW64)AppleWebKit/537.31(KHTML,如Gecko)Chrome/26.0.1410.64 Safari/537.31 不稳定的Opera 12.15 Win 8 x64 Opera/9.80(Windows NT 6.2;WOW64)Presto/2.12.388版本/12.15 稳定的Firefox 20 Ubuntu Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:20.0)Gecko/20100101 Firefox/20.0 不稳定的Chrome 26 Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.31(KHTML,像Gecko)Chrome/26.0.1410.63 Safari/537.31 不稳定的Chrome 20 Win 7 x64 Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/536.11(KHTML,如Gecko)Chrome/20.0.1132.57 Safari/536.11 不稳定的Chrome 28 Win 8 x64 Mozilla/5.0(Windows NT 6.2;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/28.0.1500.72 Safari/537.36 Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/536.11(KHTML,类似Gecko)Chrome/20.0.1132.57 Safari/536.11 在IE10 Win7 x64上不稳定

Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;WOW64;Trident/6.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;HPNTDF;.NET4.0C)
不稳定

不确定它是否适合网站,但我也添加了我的结果。可能有人应该把所有这些做一个表格。:)+感谢你让我查到a实际上是什么。@Darkthulhu::-(但我会尝试一些东西。目前还不清楚此信息提供了什么价值。由于Array.sort不能保证稳定,为什么哪种实现似乎提供了稳定性很重要?行为没有保证,因此您不能依赖它。我已将其添加到wiki应答中。如果按浏览器排序,则更容易阅读。Basically Firefox有稳定的排序,其他所有东西都使用不稳定的排序。 Stability Browser OS full UA string unstable Safari 5.3 OS X Lion (10.7.5) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.29.13 (KHTML, like Gecko) Version/6.0.4 Safari/536.29.13 stable Firefox 15.0.1 OS X Lion Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:15.0) Gecko/20100101 Firefox/15.0.1 unstable Chrome 21 OS X Lion (10.7.5) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1 stable Firefox 16 Win 7 Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0 unstable Chrome 26 Win 7 x64 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 unstable IE 9.0 Win 7 x64 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3; .NET4.0E) stable Firefox 20 Win 7 x64 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 unstable IE 10 Win 7 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E) unstable Chrome 26 Win 7 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 stable Firefox 20 Win 8 x64 Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 unstable IE 10 Win 8 x64 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0) unstable Chrome 26 Win 8 x64 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 unstable Opera 12.15 Win 8 x64 Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.15 stable Firefox 20 Ubuntu Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0 unstable Chrome 26 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31 unstable Chrome 20 Win 7 x64 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 unstable Chrome 28 Win 8 x64 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36