這三個長得很像,具體功能卻差很多。
slice:
定義:接收一個或兩個參數,它可以創建一個由當前數組中的一項或多項組成的新數組。返回為新數組,以前的數組沒有變化。
var allArray = [1,2,3,4]; var sliceArray = allArray.slice(1,2);
此時allArray還是[1,2,3,4],silceArray是[2]
splice:
一個強大的js數組操作方法,可以完成刪除、插入、替換(刪除+插入)功能。
arrayObject.splice(index,howmany,item1,.....,itemX),
第一個參數是刪除的出發點,第二個是數量,第三個和之后的是插入的內容,從第一個參數開始的位置插入。
var all=[1,2,3,4,5,6]; all.splice(1,2,7);
splice返回刪除的內容是[2,3],從數組標識1開始2位,此時輸出all則是[1,7,4,5,6]
split:
var str="1-2-3-4"; var spliteStr = str.split("-");
split返回數組[1,2,3,4]
在阮一峰老師的文章中看到一段代碼
// splice用來替換數組元素,它接受多個參數, // 第一個是開始替換的位置,第二個是需要替換的個數,后面就是所有新加入的元素。 // 因為splice不接受數組作為參數,所以采用apply的寫法。 // 這一句的意思就是原來的myArray數組替換成排序后的myArray myArray.splice.apply(myArray, params);
myArray是原數組,第一個myArray可以改成空數組,為了使用splice方法,然后參數中的myArray是原數組,params是需要替換的數組,這個數組前兩位設置成0,params原來的長度,為了當做splice的function中的前兩個參數。后面的就是排過序的結果。很靈巧