最近比較閒,將所學的知識進行了總結,這篇文章概括了數組的不同操作方法,concat()、slice()和splice(),有需要的朋友可以參考一下,希望對你有用。
concat()方法
concat()方法:基於目前陣列中所有項目建立新陣列。
具體過程為:先建立數組的一個副本,若是concat()存在參數,將接收到的參數加到副本的末尾,然後返回新構建的數組;如果沒有傳遞參數,僅複製當前數組並返回副本數組。
concat()中的參數可以是一個新的陣列也可以是一個字串。
var colors = ["red","green","blue"]; var colors2 = colors.concat("yellow",["black","brown"]); alert(colors); alert(colors2);
結果為colors為數組[“red”,”green”,”blue”];
colors2為數組[“red”,”green”,”blue”,”yellow”,” black”,”brown”];
concat()方法只是用當前數組重新創建一個新的數組,因此當前數組保持不變(colors數組不變)。
slice()方法
slice()方法:基於目前陣列中的一個或多個項目建立一個新陣列。
slice()方法中可以有一個或兩個參數(代表陣列的索引值,0,1,2…)。接收一個參數時:傳回目前陣列中從此參數位置開始到目前陣列結尾間所有項目。接收兩個參數時:傳回目前陣列中兩個參數位置間的所有項,但不傳回第二個參數位置的項。
參數也可以是負數,表示從結尾算起,-1代表最後一個,使用方法和正數一樣。
var colors = ["red","green","blue","yellow","black","brown"]; var colors2 = colors.slice(2); var colors3 = colors.slice(1,4); var colors4 = colors.slice(2,-2); var colors5 = colors.slice(-3,-1); console.log(colors2); console.log(colors3); console.log(colors4); console.log(colors5);
結果為:[“blue”, “yellow”, “black”, “brown”]
[“green”, “blue”, “yellow”]
[“blue” , “yellow”]
[“yellow”, “black”]
另外slice()方法還可用來移除陣列的
Array.prototype.remove = function(from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from <0 ? this.length + from : from; return this.push.apply(this, rest); };
對於
rest = this.slice((to || from) + 1 || this.length);
var colors = ["red","green","blue"]; var removed = colors.splice(1,2); alert(colors); //red alert(removed); //green,blue###插入:在指定位置插入任意數量項,包括兩個基本參數(即刪除操作中的兩個參數類型)和要插入項的參數,兩個基本參數為起始位置和0 (要刪除的項數應為0項),要插入的項參數可以是任意個(”red”,”green”,”blue”)。 ###
var colors = ["red","green","blue"]; var removed = colors.splice(1,0,"yellow","orange"); alert(colors); //"red","yellow","orange","green","blue" alert(removed); //空数组###取代:向指定位置插入任意數量的項同時刪除任意數量的項,插入項數和刪除項數可以不同。參數包括兩個基本參數(即刪除操作中的兩個參數類型)和要插入項目的參數。 ###
var colors = ["red","green","blue"]; var removed = colors.splice(1,1,"purple","black"); alert(colors); //"red","purple","black","blue" alert(removed); //"green"###其實總的理解是splice()方法包含兩個刪除項基本參數和任一插入項參數,兩個刪除項基本參數中第一個指定刪除位置,第二個指定刪除個數,如果個數為0,自然不刪除,只有指定位置功能了。任意個插入項參數代表要插入的項值,數量不限,可省略,省略時splice()方法只進行刪除操作。 ############
以上是深入理解JS數組操作方法 concat()、slice()、splice()的詳細內容。更多資訊請關注PHP中文網其他相關文章!