通过例子进行简单比较
slice()
var arr = ['马里奥','路易吉','塞尔达','林克','加农']
var result = arr.slice(0,2)
//0为截取开始的索引(包含),2为截取结束时的索引(不包含)
console.log(result);
//“马里奥,路易吉”
console.log(arr);
//“马里奥,路易吉,塞尔达,林克,加农”
两个参数分别为start与end,调用返回截取结果,不改变原数组
var arr = ['马里奥','路易吉','塞尔达','林克','加农']
var result = arr.slice(1)
console.log(result);
//“马里奥,路易吉,塞尔达,林克,加农”
console.log(arr);
//“马里奥,路易吉,塞尔达,林克,加农”
一个参数时,为开始索引,截取开始索引之后所有元素,
不改变原数组
var arr = ['马里奥','路易吉','塞尔达','林克','加农']
var result = arr.slice(1,-1)
//1为截取开始的索引(包含),-1为截取结束时的索引(不包含)
console.log(result);
//“路易吉,塞尔达,林克”
console.log(arr);
//“马里奥,路易吉,塞尔达,林克,加农”
最后一个元素索引为-1,以此类推,且不包含该索引指向的元素,不改变原数组
重点!!slice返回截取元素,不改变原数组!
splice()
var arr = ['马里奥','路易吉','塞尔达','林克','加农']
var result = arr.splice(0,2)
//0为截取开始的索引(包含),2为删除长度
var result = arr.splice(0,2);
console.log(result);
//"马里奥,路易吉"
console.log(arr);
//"塞尔达,林克,加农"
两个参数分别为start与length,调用返回删除元素,改变原数组
var arr = ['马里奥','路易吉','塞尔达','林克','加农']
var result = arr.splice(0,1,"奥里给")
//0为开始索引,1为删除长度,"奥里给为删除后再添加的元素"
console.log(result);
//"马里奥"
console.log(arr)
//"奥里给,路易吉,塞尔达,林克,加农"
可以理解为第一个第二个参数是选中并删除一堆儿元素,后面的所有参数插入这个’堆儿‘的位置。
**
重点!!返回删除元素,改变原数组!!
**