一:slice()
1)作用
截取数组元素,返回新数组,原数组不变
- let arr = [1, 2, 3, 4, 5, 6];
- 参数是正数时: 0 1 2 3 4 5
- 参数是负数时:-6 -5 -4 -3 -2 -1
slice()方法用于提取目标数组的一部分,返回一个新数组,原数组不变。
console.log(arr.slice(2, 4)); //(2) [3, 4]
console.log(arr.slice(1)); //(5) [2, 3, 4, 5, 6]
console.log(arr.slice(4, 1)); //[]
console.log(arr.slice()); //(6) [1, 2, 3, 4, 5, 6]
console.log(arr); //(6) [1, 2, 3, 4, 5, 6]
以 console.log(arr.slice(2, 4)); 为例
- let arr = [1, 2, 3,4,5 , 6];
- 参数是正数时: 0 1 2 3 4 5
- 两个参数 以2为下标到以四为下标的数组元素有【3,4,5】
- 又因为截取时,含头不含尾,所以提取到的目标数组是【3,4】长度为2
- 因此输出结果是(2)【3,4】
如果slice()方法的参数是负数,则表示倒数计算的位置,截取时,含头不含尾。
console.log(arr.slice(-6,-4));//(2) [1, 2]
console.log(arr.slice(-6));//(6) [1, 2, 3, 4, 5, 6]
console.log(arr.slice(-2,-5));//[]
console.log('----------------------');
2)语法
arr.slice(开始下标,结束下标)
3)说明
① 截取时,含头不含尾
② 当只有一个参数时,表示从开始位置截取到最后
③ 当没有参数时,复制一份原数组返回
④ 当开始下标大于结束下标,返回空数组 [ ]
⑤ 参数可以是负数,表示从后面开始截取,最后一个下标为-1,倒数第二个为-2,以此类推
二:splice()
1)作用
splice()方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,
返回值是被删除的元素。
注意,该方法会改变原数组。
- let arr = [1, 2, 3, 4, 5, 6];
- 参数是正数时: 0 1 2 3 4 5
- 参数是负数时:-6 -5 -4 -3 -2 -1
2)语法
arr.splice(删除的起始位置,被删除的个数,新增元素1,新增元素2)
//从下标为1的的位置,删除2个数组元素 返回被删除的元素
console.log(arr.splice(1,2));//(2) [2, 3]
console.log(arr);//(4) [1, 4, 5, 6]
//如果删除个数为0则返回空数组[]
console.log(arr.splice(1,0));//[]
//从下标为1的位置开始 删除0个元素 并增加22,33,44,55这四个元素
console.log(arr.splice(1,0,22,33,44,55));//[]
console.log(arr);//(8) [1, 22, 33, 44, 55, 4, 5, 6]
console.log(arr.splice(3,2,5,5));//从下标为3的位置开始 删除两个元素 返回被删除的元素//[44,55]
console.log(arr);//(8) [ 1, 22, 33, 5, 5, 4, 5, 6]
3)说明
① 返回删除的数组元素组成的新数组,如果删除个数为0,返回空数组
② 新增的数组元素可以省略
③ 当删除的个数为0,新增的数组元素在开始位置的前面
④ 当删除和新增同时存在,实际就是新增的数组元素替换了删除的数组元素