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))
}