首頁 >web前端 >js教程 >深入理解JS數組操作方法 concat()、slice()、splice()

深入理解JS數組操作方法 concat()、slice()、splice()

yulia
yulia原創
2018-09-14 15:06:181955瀏覽

最近比較閒,將所學的知識進行了總結,這篇文章概括了數組的不同操作方法,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);




############################################################################rr不等於0,(to||from)就等於to,且to 1不等於0,則((to || from) 1 || this.length)為to 1),若to 1=0,((to || from) 1 || this.length)為this.length; ###若to=0,(to||from)取from,若from 1不等於0,((to || from) 1 || this.length)為from 1,若from 1=0, ((to || from) 1 || this.length)為this.length。 #########splice()方法#########splice()主要用途是向目前陣列的中間插入項,可以進行刪除、插入、取代操作。會傳回一個數組,包含從原始項中刪除的項目(若果沒有刪除,傳回一個空數組) ###刪除:兩個參數,刪除起始項的位置和刪除的項數。 ###
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn