可以实现数组的增、删、改、合并
arr.splice( 删除元素的起始索引 [ , 删除元素的个数 , 追加的元素1 , 追加元素2 , ...... ] ) 第一个参数必填,其余都是可选参数
起始索引可以为负数,为负数时即倒序操作,-1 即最后一个元素,依次类推,其余与正常操作无异
arr.splice()本来是删除数组元素的,但是依靠其提供的参数可以实现很多功能
-
增加元素
let arr = [1, 2, 3, 4, 5, 6, 7]
// 设定起始元素索引后,删除个数为0的情况下,从第三个参数开始,传入的值都将会被插入到起始元素之前
arr.splice(1, 0, "新增1", "新增2")
console.log(arr, "arr的值"); // [1, '新增1', '新增2', 2, 3, 4, 5, 6, 7]
-
删除元素
let arr = [1, 2, 3, 4, 5, 6, 7]
// 只设定起始元素索引时,默认会删除掉从索引开始的所有元素
arr.splice(1) // [1]
// 设定起始元素索引和删除个数时,会删除掉从索引开始的往后N个元素
arr.splice(1,3) // [1, 5, 6, 7]
// 注意:如果删除个数 > 从索引开始后元素的个数时,将会删除掉从索引开始的所有元素
arr.splice(1,100) // [1]
-
改变元素
let arr = [1, 2, 3, 4, 5, 6, 7]
// 设定好起始元素索引后,删除个数与填充元素个数应当对应才会实现改变元素值的效果
arr.splice(2,1,"星空")
console.log(arr, "arr的值"); // [1, 2, '星空', 4, 5, 6, 7]
// 需要注意的是:当删除多个和填充多个时,填充元素将根据设置顺序被填充到数组中,不可进行位置更改
arr.splice(3,2,"仰望","星空")
console.log(arr, "arr的值"); // [1, 2, 3, '仰望', '星空', 6, 7]
// 当填充元素个数 > 删除个数时,默认从起始元素位置顺序填充,所以如果是单单改变数组元素值的话,不建议填充过多(了解)
arr.splice(3,2,"仰望","星空","张杰")
console.log(arr, "arr的值"); // [1, 2, 3, '仰望', '星空', '张杰', 6, 7]
-
数组合并
let arr = [1, 2, 3, 4, 5, 6, 7]
let arr2 = ["你在", "看", "啥子哦"]
// 数组拼接需要与 ... 展开运算符 配合使用
// 当删除元素为0时,即可在起始元素索引值前进行数组插入,即可实现数组的合并
arr.splice(1, 0, ...arr2)
console.log(arr, "arr的值"); // [1, '你在', '看', '啥子哦', 2, 3, 4, 5, 6, 7]