js中關於array的slice和sort方法(轉自JavaEye)

1、array.slice(start, end) 方法:數組

     slice()是用來截取數組中的一部分,用它來複制數組,若是省略了end參數,則切分的數組包含從start開始到數組結束的全部元素。ide

如今要用它來複制數組,就一行:函數

var newArray=oldArray.slice(0); 


 

其餘說明:編碼

1. 若是 start 爲負,將它做爲 length + start處理,此處 length 爲數組的長度,好比a.slice(-3,4),至關於a.slice(2,4)。spa

2. 若是 end 爲負,就將它做爲 length + end 處理,此處 length 爲數組的長度,好比a.slice(0,-1)。code

3. 若是省略 end ,那麼 slice 方法將一直複製到源數組結尾,好比a.slice(1)。若是 end 出如今 start 以前,不復制任何元素到新數組中,好比a.slice(4,3)。blog

4.對於字符串,也有slice(start,end)方法。排序

2、array.sort() 方法:字符串

默認的sort()按字符編碼排序的:it

code1:

var testArray=[3,324,5345,6546,134,5654,665];
        testArray.sort();
        alert(testArray);

輸出結果是:134  3  324  5345  5654  6546  665


按大小排序:

var testArray=[3,324,5345,6546,134,5654,665];
        testArray.sort(function(a,b){return a-b;});
        alert(testArray);

這裏傳遞一個比較函數給sort,比較函數的邏輯是:若是兩參數的差值小於0,則表示a必須出如今b前面,不然在b後面。輸出結果是:

輸出結果是:3  134  324  665  5345  5654  6546,


補充:對多維數組的排序:

var arr=[
             [2,1,55,4],
             [5,3,22,3],
             [1,2,77,2],
             [9,4,33,5],
          ];                 
alert("默認按第一列排\n"+arr.sort().join("\n"))  
alert("如今按第三列排\n"+arr.sort(function(left,right){return left[2]>right[2]?1:-1}).join("\n"))  
alert("如今按第三列倒排\n"+arr.sort(function(left,right){return left[2]>right[2]?-1:1}).join("\n"))

//說明:alert(arr.sort(function(left,right){return left>right?-1:1}))   //這裏,sort方法經過參數函數的返回值 1或者-1來決定是順排仍是倒排

相關文章
相關標籤/搜索