splice() 和 slice()惟一的共同點是都是對數組的操做,還有就是長的很像,有時候容易搞混。數組
這兩個最的區別:
splice()會改變原來的數組,返回的是被改變的內容,好比說經過splice刪掉了某一項,那麼返回的是刪掉的這一項,固然仍是會以數組的形式返回。
舉個栗子this
let animals = ['ant', 'bison','camel','duck','elephant'] console.log(animals.splice(2,1)) //['camel']
被刪掉的是索引未爲2的一項,返回的也只有這一項
因此若是想刪掉某一項,並不須要獲得一個新的數組,只須要prototype
animals.splice(2,1) console.log(animasl)//['ant', 'bison','duck','elephant']
// 用某個元素替換掉數組裏的某個元素 直接修改原來的數組 Array.prototype.replaceAryItem = function(index,val) { this.splice(index,1,val) }
slice不會對原數組進行改變,會返回一個新的數組。利用slice一樣也能夠實現根據索引刪除某一項code
// 刪除數組裏的某一項 返回一個新的數組 不直接修改數組 Array.prototype.removeAryItemByIndex = function(index) { return this.slice(0,index).concat(this.slice(index+1)) }