操作方法 1. concat() 拼接數組 使用此方法可以拼接元素,並組成新數組,結果返回新數組的副本。(不會影響原數組) 2. slice(start, end) 切片(截取片段) 使用此方法可以截取數組元素,可以傳入一個參數或兩個參數。參數表示數組下標索引。(不會影響原數組) 傳入一個參數表示, ...
操作方法
1. concat() 拼接數組
使用此方法可以拼接元素,並組成新數組,結果返回新數組的副本。(不會影響原數組)
// concat() 連接元素返回新元素副本
var arr = ["zero",1,"two",3,"four",5,"six",7,"eight"];
// 連接一個元素
console.log(arr.concat(9)); // 返回新數組的副本
console.log(arr.concat("9"));
console.log(arr); // 依然是原數組,這就證明此方法返回的是一個副本
// 還能連接對象
console.log(arr.concat({"name":"Mike"})); // 返回新數組的副本
var moreArr = [9, "ten", 11, "twelve"];
// 連接另一個數組
console.log(arr.concat(moreArr)); // 返回新數組的副本
// 其他
console.log(arr.concat(undefined,null,true,false,[1,2,3],{"name":"Lucy"}));
2. slice(start, end) 切片(截取片段)
使用此方法可以截取數組元素,可以傳入一個參數或兩個參數。參數表示數組下標索引。(不會影響原數組)
傳入一個參數表示,截取從這個下標開始至數組最後一個元素的所有項。
傳入兩個參數時,第一個參數表示開始截取的位置,第二個參數表示停止截取的位置(實際截取不到),也就是左閉右開,俗稱“顧頭不顧尾”。
// slice() 截取
var arr = ["zero",1,"two",3,"four",5,"six",7,"eight"];
// 傳一個參數,參數代表數組下標 返回該下標至數組末尾的所有元素
console.log(arr.slice(1)); // [1, "two", 3, "four", 5, "six", 7, "eight"]
console.log(arr.slice(3)); // [3, "four", 5, "six", 7, "eight"]
// 傳兩個參數,第一個參數是開始位置,第二個參數是結束位置 顧頭不顧尾
console.log(arr.slice(1,4)); // [1, "two", 3]
console.log(arr.slice(3,6)); // [3, "four", 5]
// 傳負數
console.log(arr.slice(-1)); // arr.slice(9-1) => arr.slice(8) => ["eight"]
console.log(arr.slice(-5,-3)); // arr.slice(9-5, 9-3) => (4, 6) => ["four", 5]
console.log(arr); // 原數組不變
3. splice(start, howmany, item1, moreitem...) 刪除,插入,替換元素
此方法可以實現數組元素的刪除,插入和替換。(直接對原數組產生作用)
可以輸入多個參數,依次是刪除的初始下標,刪除的元素個數(長度),補充的數組元素。
當只輸入一個參數時,表示從該下標開始往後的所有數組元素均被刪除。
當輸入兩個參數時,第一個參數表示初始下標,第二個參數表示執行操作的長度。
當第二個參數為0時,表示並沒有執行刪除,這時如果後面繼續存在參數,那麼就會將這些值依次插入到從起始下標開始的位置。
當第二個參數非0時,而後面存在補充的元素時,就實現了替換。
// splice() 對數組元素進行刪除 插入 替換
var lessons = ["Chinese", "Math", "English", "Art", "History", "PE"];
// 從下標為1的元素開始,刪除兩個長度位置上的元素。
console.log(lessons.splice(1,2)); // 返回被移除的元素 ["Math", "English"]
console.log(lessons); // ["Chinese", "Art", "History", "PE"]
// 第二個參數表示長度,為 0 時表示刪除長度為 0,從第三個元素開始就是補充的元素,這樣也就實現了插入的功能。
console.log(lessons.splice(1,0,"new lesson one", "new lesson two")); // []
console.log(lessons); // ["Chinese", "new lesson one", "new lesson two", "Art", "History", "PE"]
// 當第二個元素為2時,表示刪除從下標1開始的兩個元素,並插入新的補充元素,這就實現了替換的功能。
console.log(lessons.splice(1,2,"Math2", "English2")); // 返回被移除的元素 ["new lesson one", "new lesson two"]
console.log(lessons); // ["Chinese", "Math2", "English2", "Art", "History", "PE"]
// 只有一個參數時,表示從該下標開始刪除後面所有的元素
console.log(lessons.splice(1)); // ["Math2", "English2", "Art", "History", "PE"]
console.log(lessons); // ["Chinese"]