戰鬥英雄你當,漂亮媳婦兒你娶,怎麼啥好事都被你給佔了——《激情燃燒的歲月》
談起這兩個方法,新手不蒙,我是不信!正如吐槽Javascript系列一:slice()、substr()和 substring()中提到的,字符串中也有一個slice方法,極易混淆!
但其實呢,在數組中,他們仍是很好區分的。數組
splice,譯爲拼接,它的功能很是強大,可以刪除,新增,修改原數組,功能三合一哦,咱們先來看它的刪除功能:code
// 刪除 let colors = ['red', 'green', 'blue'] let removed = colors.splice(0, 1) console.log(removed) // [ 'red' ] console.log(colors) // [ 'green', 'blue' ]
上面代碼中,splice接收了二個參數,第一個參數表示要刪除的第一項的位置,第二個參數表示要刪除的項數。
咱們再來看看它的添加功能:ip
// 添加 let colors = ['red', 'green', 'blue'] let removed = colors.splice(1, 0, 'yellow', 'orange') console.log(removed) // [] console.log(colors) // [ 'red', 'yellow', 'orange', 'green', 'blue' ]
上面代碼中,splice接收了四個參數,第一個參數表示要刪除的第一項的位置,第二個參數表示要刪除的項數,從第三個參數開始,表示要添加的項。
咱們再來看看它的替換功能:rem
// 替換 let colors = ['red', 'green', 'blue', 'orange'] let removed = colors.splice(2, 1, 'yellow', ) console.log(removed) // [ 'blue' ] console.log(colors) // [ 'red', 'green', 'yellow', 'orange' ]
上面代碼中,splice接收了三個參數,第一個參數表示要刪除的第一項的位置,第二個參數表示要刪除的項數,第三個參數表示要添加的項。
原來,它的替換功能其實是經過刪除和添加來完成的。字符串
說完splice,接下來講slice。string
slice,譯爲切開,咱們來看例子:console
let arr = ['red', 'green', 'blue', 'yellow'] let arr1 = arr.slice(1) let arr2 = arr.slice(1, 2) console.log(arr1) // [ 'green', 'blue', 'yellow' ] console.log(arr2) // [ 'green' ] console.log(arr) // [ 'red', 'green', 'blue', 'yellow' ]
slice接受一或兩個參數,即要返回項的起始和結束位置。在只有一個參數的狀況下,slice()方法返回從該參數指定位置開始到當前數組末尾的全部項。它並不改變原數組。方法
我曾經一直困惑數組中的刪除方法,當知道刪除這項偉大的任務居然交給了splice,我內心是失望的。
不該該是del或者remove纔像話嗎?刪除的功能它佔了也就算了,添加的功能它也佔了!它既能添加,也能刪除,還能拼接,那它爲何沒有七十二變?新手
一個西瓜,被菜刀切成幾塊,這西瓜仍是原來的西瓜嗎?那一個數組,被你切了幾下,那數組仍是原來的數組嗎?co