slice返回由start和end决定的一个浅拷贝的新数组,原数组不会改变。
有两个参数:
- start,起始索引,从该索引提取原数组元素,如果是负数,则从末尾开始;如果省略start,则默认是数组的0下标开始
- end,结束索引,在该索引结束提取原数组元素,如果end被省略,slice会一直到末尾;如果end大于数组的长度,也会提取到数组末尾。
//从带有索引号为 2 的 <p> 元素开始选中 <p> 元素:
$("p").slice(2)
//截取字符串Str下标0-3的内容 $(selector).slice(start,stop)
Str.slice(0,3)
splice会改变原数组,他通过删除或者替换现有元素或者原地添加新的元素来修改数组,并且以数组形式返回被修改的内容。
有三个参数:
- start,指定修改的开始位置,如果超出数组的长度,则从数组末尾开始添加;如果是负值,从数组末尾开始第几位;如果负数也大于数组的长度,则开始位置为0
- deleteCount 可选参数,表述要移除的数组元素的个数。
- item1,item2,可选,表示要添加进数组的元素。
var nums = [1,2,3]
// 将2换成4
nums.splice(1,1,4) // 从数组下标1开始,操作1个元素,把它替换成4
console.log(nums) // [1,4,3]
// 删除4
nums.splice(1,1) // 从数组下标1开始,操作1个,不替换
console.log(nums) // [1,3]
// 值得注意的是修改了原来的数组
- splice改变原数组,slice不改变原数组。
- splice除了可以删除之外,还可以插入。
- splice可传入3个参数,slice接受2个参数。