數組排序,不滿三位數值的按照原來的位數進行比較,超過三位的取後面三位進行比較

第一步:首先要判斷數值的長度,先把他轉成字符串,在判斷位數,截取後面的三位進行比較
var arr=[12432,34,535,89002,452,50]
for(var i=0;i<arr.length;i++){
arr[i]=arr[i].toString()
if(arr[i].length>3){
arr[i]=arr[i].substr(arr[i].length-3)
}
}
第二步:再把字符串轉化成數值進行比較判斷
b = arr.map(function(e){return parseInt(e);})
function compare(value1,value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}
b.sort(compare);

        以上是根據自己的想法來寫的,不知道是否有簡潔的辦法來實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章