一、array.slice(start, end) 方法:
slice()是用來截取數組中的一部分,用它來複制數組,如果省略了end參數,則切分的數組包含從start開始到數組結束的所有元素。
現在要用它來複制數組,就一行:
var newArray=oldArray.slice(0);
其他說明:
1. 如果 start 爲負,將它作爲 length + start處理,此處 length 爲數組的長度,比如a.slice(-3,4),相當於a.slice(2,4)。
2. 如果 end 爲負,就將它作爲 length + end 處理,此處 length 爲數組的長度,比如a.slice(0,-1)。
3. 如果省略 end ,那麼 slice 方法將一直複製到源數組結尾,比如a.slice(1)。如果 end 出現在 start 之前,不復制任何元素到新數組中,比如a.slice(4,3)。
4.對於字符串,也有slice(start,end)方法。
二、array.sort() 方法:
默認的sort()按字符編碼排序的:
code1:
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort();
alert(testArray);
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);
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"))
[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來決定是順排還是倒排