var array = ['四年级10','四年级1','四年级12','四年级15','四年级3','三年级10','三年级1','三年级12','三年级15','三年级3','三年级10','三年级10','一年级10', '二年级2', '一年级2', '二年级10'];
array.sort(function(x, y){
if(x.match(/\D/g).join("") > y.match(/\D/g).join("")){
return 1;
}else if(x.match(/\D/g).join("") < y.match(/\D/g).join("")){
return -1
}else {
return 0;
}
});
console.log(array);
array.sort(function(x, y){
if(x.match(/\D/g).join("") != y.match(/\D/g).join("")) return;
return parseInt(x.match(/\d/g).join("")) - parseInt(y.match(/\d/g).join(""));
});
console.log(array);
这样的一个排序,目的很明显;但是第二次sort时,数组明显发生了变化,不是第一次sort的顺序了;
如果array的个数很少,四个的话,会有效果,但是数目已增加,就会乱了。为什么第二次sort时,会乱序;
哪位大牛给指点指点,或者还有更好的对这种array的排序方法?