splice本意拼接,但可以扩展出很多用法,体现在第二个参数的选择上
第一个参数是起始位置,不包含这一位置的元素,注意是起始位置不是下标,从1开始
var letters = ['a','b','c','d']
删除元素
- 第二个参数:要删除几个元素
letters.splice(1,1) // ['a','c','d']
letters.splice(2,1) // ['a','b','d']
- 如果第二个参数大于起始位置后面元素的数量(不够删的):从起始位置开始删除后面所有的元素(但是不建议这样,代码要严谨)
letters.splice(2,5) // ['a','b']
- 第二个参数缺省:从起始位置开始删除后面所有的元素
letters.splice(1) // ['a']
替换元素
- 替换元素实际上就是先执行上面的删除元素,然后添加传入的元素
- 或者说:第二个参数是要替换几个元素,后面是用于替换的元素
letters.splice(1,3,'m','n','l') // ['a','m','n','l']
letters.splice(1,3,'m','n','l','x') // ['a','m','n','l','x']
letters.splice(1,2,'m','n','l','x') // ['a','m','n','l','x','d']
插入元素
- 插入元素实际上就是替换元素中不执行删除的情况,即第二个参数是0
letters.splice(1,0,'x','y','z') // ['a','x','y','z','b','c','d']