javascript陣列的原生重新排序方法
(1)作用
顛倒數組中元素的位置(改變原來的數組)
## (2)語法arr.reverse() //没有参数
let myArray = [ 'one', 'two', 'three' ]; myArray.reverse(); console.log(myArray); // ["three", "two", "one"]
let myArray = [ 'one', 'two', 'three' ]; let result = myArray.reverse(); result[2] = 2; console.log(myArray); //["three", "two", 2] console.log(result); //["three", "two", 2]
2.陣列sort 方法#
(2)文法
rrre 用來制定按某中順序進行排序的函數。
如果省略參數 例如 這樣呼叫。
arr.sort(); arr.sort(compareFunction);
sort() 函數會套用下列的參數,所以預設比較的是Unicode 尺寸
arr.sort() //没有添加参数
(4)原則
2.若元素的數量小於2,直接回傳
3.判斷目前的物件是否為陣列, 若物件不是陣列,則會將原型鍊上的數值複製到目前的物件數組,進行排序
//关于sort 的可选参数 //如果没有设置参数,v8 中会自动生成一个参数 if (!IS_CALLABLE(comparefn)) { //这是默认的参数值 comparefn = function (x, y) { if (x === y) return 0; if (%_IsSmi(x) && %_IsSmi(y)) { return %SmiLexicographicCompare(x, y); } //在这里 会把参数全都转换为 Unicode 在进行比较 x = TO_STRING(x); y = TO_STRING(y); if (x == y) return 0; else return x < y ? -1 : 1; }; }
4.將陣列裡面的undefined值都排在最後,
當陣列中元素的數量小於等於10的時,使用InsertionSort 排序
var arry = [1,2,3,4,2,5]; var a = {}; a.proto = arry; a.sort() // Array {0: 1, 1: 2, 2: 2, 3: 3, 4: 4, 5: 4}
7.當陣列中元素的數量大於10時,使用快速排序
以上是深入了解javascript數組重排序方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!