Chrome谷歌浏览器中js代码Array.sort排序的bug乱序解决办法2015-06-26【现象】代码如下:
var list = [{ n: "a", v: 1 }, { n: "b", v: 1 }, { n: "c", v: 1 }, { n: "d", v: 1 }, { n: "e", v: 1 }, { n: "f", v: 1 }, { n: "g", v: 1 }, { n: "h", v: 1 }, { n: "i", v: 1 }, { n: "j", v: 1 }, { n: "k", v: 1 }, ];list.sort(function (a, b) {return a.v - b.v;});for (var i = 0; i < list.length; i++) {console.log(list[i].n);}很简单,就是定一个对象数组,再用sort方法按v字段对其排序,这个问题很容易让人忽略,因为按正常思维都会认为只要所有v是相等的那么结果就跟没排序之前是一样的,但是……结果如下:
====IE11====
====火狐====
====Chrome====