例子
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.slice(2, 7); // 2,3,4,5,6 arr.splice(2, 7); // 2,3,4,5,6,7,8
第一个参数表示开始位置, 第二个表示截取到的位置(不包含该位置)
slice(start, end)
第一个参数开始位置, 第二个参数截取长度
splice(start, length)
例子
var x = y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] x.slice(2, 5); //2,3,4
原数组并未改变
console.log(x); [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
接下来用同样方式测试splice
y.splice(2, 5); //2,3,4,5,6
显示原数组中的数值被删掉了
console.log(y); //[0,1,7,8,9]
总结:
slice和splice虽然都是对于数组对象进行截取,但是二者还是存在明显区别,函数参数上slice和splice第一个参数都是截取开始位置,slice第二个参数是截取的结束位置(不包含),而splice第二个参数(表示这个从开始位置截取的长度),slice不会对原数组产生变化,而splice会直接剔除原数组中的截取数据!