JavaScript數組裏的slice和splice

關於slice和splice,有些人會搞不清楚,查了一博客,本身作了驗證,下面簡單總結一下他們的用法和區別。


用法:數組

slice:截取數組 [start, end)   /*從start下標開始---end-1下標結束*/
bash

splice:
spa

參數(開始項的下標,剪切長度,剪切之後最後一位開始添加數據)code

var arr = ['a', 'b', 'c', 'd'];博客

arr.splice(1, 2, 1,2,3,4,5) //arr變爲['a', 1, 2, 3, 4, 5, 'd']string

var arr = ['a', 'b', 'c', 'e'];it

arr.splice(3, 0, 'd') //arr變爲['a', 'b', 'c', 'd', 'e'];console

arr.splice(-1,0,'d')一樣能夠實現,數組從後往前數下標從-1開始class

區別:從用法裏就能看到區別了,可是我以爲他們還有一個最主要的區別是slice方法不改變原數組,splice方法改變原數組。看代碼
方法

var arr = [];
arr[0]=1;
arr[1]=2;
arr[3]='abc';
arr[5]=true;
console.log(arr);  //[ 1, 2, <1 empty item>, 'abc', <1 empty item>, true ]
console.log(arr.slice(0,4)); //[ 1, 2, <1 empty item>, 'abc' ]
console.log(arr);  //[ 1, 2, <1 empty item>, 'abc', <1 empty item>, true ]
console.log(arr.splice(0,3, 3,4,5)); //[ 1, 2, <1 empty item> ]
console.log(arr)  //[ 3, 4, 5, 'abc', <1 empty item>, true ]複製代碼

能夠看出:slice方法不會改變原數組,slice方法返回新截取的數組

                   splice方法改變原數組,splice方法返回截取到底數組

相關文章
相關標籤/搜索