乐趣区

javascript数组方法splice和slice的作用和区别的总结

splice() 和 slice()唯一的共同点是都是对数组的操作,还有就是长的很像,有时候容易搞混。

这两个最的区别:
splice()会改变原来的数组,返回的是被改变的内容,比如说通过 splice 删掉了某一项,那么返回的是删掉的这一项,当然还是会以数组的形式返回。
举个栗子

    let animals = ['ant', 'bison','camel','duck','elephant']
    console.log(animals.splice(2,1)) //['camel']

被删掉的是索引未为 2 的一项,返回的也只有这一项
所以如果想删掉某一项,并不需要得到一个新的数组,只需要

   animals.splice(2,1)
   console.log(animasl)//['ant', 'bison','duck','elephant']
// 用某个元素替换掉数组里的某个元素 直接修改原来的数组
Array.prototype.replaceAryItem = function(index,val) {this.splice(index,1,val)
}

slice 不会对原数组进行改变,会返回一个新的数组。利用 slice 同样也可以实现根据索引删除某一项

// 删除数组里的某一项 返回一个新的数组 不直接修改数组
Array.prototype.removeAryItemByIndex = function(index) {return this.slice(0,index).concat(this.slice(index+1))
}
退出移动版