首頁  >  文章  >  web前端  >  深入了解javascript數組重排序方法

深入了解javascript數組重排序方法

迷茫
迷茫原創
2017-03-26 15:10:371210瀏覽

javascript陣列的原生重新排序方法

1.陣列reverse 方法

    (1)作用

        顛倒數組中元素的位置(改變原來的數組)

##    (2)語法

arr.reverse()   //没有参数

    (3)範例

let myArray =  [ 'one', 'two', 'three' ]; 

myArray.reverse();

console.log(myArray); //  ["three", "two", "one"]

    (4)返回值##   引用,不會新產生陣列

let myArray =  [ 'one', 'two', 'three' ]; 

let result = myArray.reverse();

result[2] = 2;

console.log(myArray);   //["three", "two", 2]

console.log(result);    //["three", "two", 2]

    (5)缺點

         較不靈活,且只能顛倒陣列


2.陣列sort 方法# 

         sort() 會在適當的位置對陣列的元素進行排序(原始數組會改變)

    (2)文法
rrre    用來制定按某中順序進行排序的函數。

        如果省略參數 例如 這樣呼叫。

arr.sort();
arr.sort(compareFunction);

         sort() 函數會套用下列的參數,所以預設比較的是Unicode 尺寸

     arr.sort() //没有添加参数

    (4)原則

          (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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn