區分 splice 和 slice
阿新 • • 發佈:2018-12-14
splice 和 slice 在使用時,經常會忘記二者的區別,造成混淆
其實,關鍵在於區分二者的引數:
1. splice(index,howmany,item1,.....,itemX)
index: 必選。從index處開始的零個或多個元素。
Howmany:必選。刪除多少個元素
item1, ..., itemX可選。要新增到陣列的新元素
2. slice(start,end)
start:必需。從何處開始選取。
如果是負數,那麼它規定從陣列尾部開始算起的位置。
-1 指最後一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。
如果沒有指定該引數,那麼切分的陣列包含從 start 到陣列結束的所有元素。
如果這個引數是負數,那麼它規定的是從陣列尾部開始算起的元素。
其次,splice 會改變原陣列,而 slice 不會。
以上可以看出:splice() 方法用於插入、刪除或替換陣列的元素;
slice() 方法可從已有的陣列中返回選定的元素
原理搞清楚了,寫個demo加深下印象:
var arr1 = ['a','b','c','d','e'];
var arr2 = arr1.splice(1,2,'newvalue');
console.log(arr2);// ["b", "c"]
console.log(arr1);//["a", "newvalue", "d", "e"]
var arr1 = ['a','b','c','d','e'];
console.log(arr1.slice(0,2));//["a", "b"]
console.log(arr1);//["a", "b", "c", "d", "e"]