// 傳遞一個參數,則該方法僅執行刪除操作,參數值指定刪除元素的起始下標(包含該下標元素)
//splice() 方法將刪除后面所有元素
var a = [1,2,3,4,5]; //定義數組
var b = a.splice(2); //從第三個元素開始執行刪除
console.log(b); //被刪除的子數組是[1,2]
// 傳遞兩個參數,則第 2 個參數值表示要刪除元素的個數
// 特別注意:如果不執行刪除操作,第 2 個參數值應該設置為 0,但是不能夠空缺,否則該方法無效
var a = [1,2,3,4,5]; //定義數組
var b = a.splice(2,2); //從第三個元素開始執行刪除,刪除元素個數為2個
console.log(b); //被刪除的子數組是[1,2,5]var b = a.splice(2,0); //不執行刪除操作
console.log(b.constructor == Array); //返回true,說明是一個空數組
// 傳遞三個或多個參數,則第 3 個以及后面所有參數都被視為插入的元素
var a = [1,2,3,4,5]; //定義數組
var b = a.splice(2,2,6,7);
//從第三個元素開始執行刪除,刪除元素個數為2個,第三個及以后的參數作為需要插入的元素
console.log(a); //返回[1,2,6,7,5]// 特別注意1
// 當第 1 個參數值大于 數組length 屬性值時,被視為在數組尾部執行操作,因此刪除無效3
// 但是可以在尾部插入多個指定元素
var a = [1,2,3,4,5]; //定義數組
var b = a.splice(6,2,2,3); //起始值大于length屬性值
console.log(a); //返回[1,2,3,4,5,2,3]// 特別注意2
// 如果第 1 個參數為負值,則按絕對值從數組右側開始向左側定位。如果第 2 個參數為負值,則被視為 0
var a = [1,2,3,4,5]; //定義數組
var b = a.splice(-2,-2,6,7); //第一、二個參數都為負值
console.log(a); //返回[1,2,3,6,7,4,5]
var a = [1,2,3,4,5]; //定義數組
var b = a.slice(2,4); //截取第三個元素到第五個元素前的所有元素
console.log(b); //返回[3,4,5]// 特別注意1
// 第 1 個參數指定起始下標位置,包括該值指定的元素;第 2 個參數指定結束位置,不包括指定的元素// 特別注意2
// 方法的參數可以自由設置。如果不傳遞參數,則不會執行任何操作
// 如果僅指定一個參數,則表示從該參數值指定的下標位置開始,截取到數組的尾部所有元素
var a = [1,2,3,4,5]; //定義數組
var b = a.slice(2); //截取數組中第三個元素,以及后面所有元素
console.log(b); //返回[3,4,5]// 特別注意3
// 當參數為負值時,表示按從右到左的順序進行定位,即倒數定位法,而不再按正數順序定位(從左到右)
// 但取值順序依然是從左到右
var a = [1,2,3,4,5]; //定義數組
var b = a.slice(-4,-2); //截取倒數第四個元素到倒數第二個元素前的元素
console.log(b); //返回[2,3]// 特別注意4
// 如果起始下標值大于或等于結束下標值,將不執行任何操作
var a = [1,2,3,4,5]; //定義數組
var b = a.slice(-2,-4); //截取倒數第二個元素到倒數第四個元素前的元素
console.log(b); //返回空集
// 上面示例說明數組在截取時,始終是按從左到右的順序執行操作,而不會是從右到左的反向操作。// 特別注意5
// 當起始參數值大于或等于 length 屬性值時,將不會執行任何操作,返回空數組
// 如果第二個參數值大于 length 屬性值時,將被視為 length屬性值
var a = [1,2,3,4,5]; //定義數組
var b = a.slice(3,10); //截取第四個元素,直到后面所有元素
console.log(b); //返回[4,5]