slice()和splice()區(qū)別

// sort
[1,2,3,4,5,6,7].sort(()=> {return -1})
(7) [7, 6, 5, 4, 3, 2, 1]
[1,2,3,4,5,6,7].sort(()=> {return 1})
(7) [1, 2, 3, 4, 5, 6, 7]

// slice
let arr = [1,2,3,4,5,6,7];
let cc = arr.slice(1,3);  // 映射出新的數(shù)組
// cc   [2, 3]

//splice
let arr = [1,2,3,4,5,6,7];
let cc = arr.splice(1,1,3);  // 1.改變自身  2.映射出 新的數(shù)組
// cc     [2]
// arr    [1, 3, 3, 4, 5, 6, 7]
1.slice(start,end):方法可從已有數(shù)組中返回選定的元素,返回一個新數(shù)組,包含從start到end(不包含該元素)的數(shù)組元素。

注意:該方法不會改變原數(shù)組,而是返回一個子數(shù)組,如果想刪除數(shù)組中的一段元素,應該使用Array.splice()方法。

start參數(shù):必須,規(guī)定從何處開始選取,如果為負數(shù),規(guī)定從數(shù)組尾部算起的位置,-1是指最后一個元素。
end參數(shù):可選(如果該參數(shù)沒有指定,那么切分的數(shù)組包含從start倒數(shù)組結束的所有元素,如果這個參數(shù)為負數(shù),那么規(guī)定是從數(shù)組尾部開始算起的元素)。

var arr = [1,2,3,4,5];
console.log(arr.slice(1));//[2,3,4,5]  選擇序列號從1到最后的所有元素組成的新數(shù)組。
console.log(arr.slice(1,3))//[2,3]  不包含end,序列號為3的元素

同時slice(start,end)可以作用于字符串的切割

/*字符串切割和提取----slice(start,end),substring(),substr()*/
var str = "Hello,world!";
var sliceStr = str.slice(1,5);//ello (不包含end)
var subStr = str.substring(1,5);//ello
var subStr = str.substr(1,5);//ello,
var str = "1000000";
var sliceStr = str.slice(-3);//000  從序列號為-3的位置到最后
2.splice():該方法向或者從數(shù)組中添加或者刪除項目,返回被刪除的項目。(該方法會改變原數(shù)組)

splice(index,howmany,item1,...itemX)

index參數(shù):必須,整數(shù),規(guī)定添加或者刪除的位置,使用負數(shù),從數(shù)組尾部規(guī)定位置。
howmany參數(shù):必須,要刪除的數(shù)量,如果為0,則不刪除項目。
tem1,...itemX參數(shù):可選,向數(shù)組添加的新項目。

var arr = [1,2,3,4,5];
console.log(arr.splice(2,1,"hello"));//[3]  返回的新數(shù)組
console.log(arr);//[1, 2, "hello", 4, 5]  改變了原數(shù)組
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容