1. 程式人生 > >區分 splice 和 slice

區分 splice 和 slice

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"]