var arr =[3
,4,2
,1];
arr.
sort()
; console.
log(arr)
;
預設進行遞增排序
(4) [1, 2, 3, 4]
sort方法可以接收乙個引數,用來自定義排序規則
arr.
sort
(function
(val1, val2)
);
如果陣列元素為非數字型別,必須要手動指定排序規則,否則可能會產生詭異的結果。
比如,兩個字串相減結果為nan,這回導致排序不生效。
當元素為物件時,例
var arr =[,
,]; arr.
sort
(function
(val1, val2));
console.
log(arr)
;
經查詢資料得知,sort方法竟然是用的冒泡排序。。。換乙個效率高些的吧。
array.prototype.
sortq
=function
(_compare)
;function
quicksort
(src)
function
_quicksort
(src, left, right)
j--;}
while
(i < j)
i++;}
}if(left != right)
}quicksort
(this);
}
測試一下效率var arr1 =
newarray()
;for
(var i =
0; i <
1000000
; i++
) arr1.
push
(math.
random()
);var dat1 =
newdate()
; arr1.
sort()
;var dat2 =
newdate()
; console.
log(dat2.
gettime()
- dat1.
gettime()
);var arr2 =
newarray()
;for
(var i =
0; i <
1000000
; i++
) arr2.
push
(math.
random()
);var dat3 =
newdate()
; arr2.
sortq()
;var dat4 =
newdate()
; console.
log(dat4.
gettime()
- dat3.
gettime()
);
輸出
7237
292
效率提公升了20多倍。雖然還有更高效率的演算法,不過這個也夠用了。
2023年04月26日 補上物件陣列排序
var arr3 =
newarray()
;for
(var i =
0; i <
40; i++))
;}arr3.
sortq
(function
(val1, val2));
console.
log(arr3)
;
JS實現自定義排序
定義 用本地特定的順序來比較兩個字串。語法 stringobject.localecompare target 引數 target 要以本地特定的順序與 stringobject 進行比較的字串。返回值 說明比較結果的數字。1 如果 stringobject 小於 target,則 localeco...
JavaScript自定義陣列排序
array中有自帶的排序功能,這個使用起來比較方便,我們有一點必須清楚,就是排序的依據,如果sort不傳入引數的話,那就是按照字元編碼 unicode編碼 的順序排序。var a 3 2 1 console.log a 0 charcodeat 0 51 console.log a 1 charco...
PHP陣列 自定義排序
note 此函式將為array填充新的鍵名,將會刪除原有鍵名 function asc a,b b array 2 6 8 9 1 7 usort b,asc print r b 輸出 array 0 1 1 2 2 6 3 7 4 8 5 9 判斷條件為 return a b?1 1 陣列值按照從...