slice | splice |
---|---|
不改变原数组 | 改变原数组 |
返回一个子数组 | 返回被替换或删除掉的元素数组 |
arr.slice(2, 3) 从索引为2的元素开始截取到索引为3的元素(包含2,不包含3) | arr.splice(2, 3) 从索引为2的元素开始 删除 3个元素(包含2) |
slice: 从当前数组中截取一个新的数组
-
不影响原来的数组,返回子数组
var arr = ['a', 'b', 'c', 'd', 'e', 'f'] var arr1 = arr.slice(0, 3) // 不包含下标为3的元素 var arr2 = arr.slice(3, 6) console.log(arr); // (6) ["a", "b", "c", "d", "e", "f"] console.log(arr1); // (3) ["a", "b", "c"] console.log(arr2); // (3) ["d", "e", "f"]
-
参数start: 必选,end: 可选
-
end没有指定时
-
负数: 从数组尾部算起, -1指最后一个元素
var arr = ['a', 'b', 'c', 'd', 'e', 'f'] var arr1 = arr.slice(-1) var arr2 = arr.slice(-3) console.log(arr1); // ["f"] console.log(arr2); // ["d", "e", "f"]
-
正数: 选择序列号从index到最后的所有元素组成的新数组
var arr = ['a', 'b', 'c', 'd', 'e', 'f'] var arr1 = arr.slice(0) var arr2 = arr.slice(1) console.log(arr1); // ["a", "b", "c", "d", "e", "f"] console.log(arr2); // ["b", "c", "d", "e", "f"]
-
-
splice: 删除或替换当前数组的某些元素
- 返回新的数组[被替换掉的元素]
- 改变原数组
删除或替换当前数组的某些项目
添加
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 0, 'add')
console.log(arr) // ["a", "b", "add", "c", "d", "e", "f"]
console.log(res) // []
替换
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 1, 'add')
console.log(arr) // ["a", "b", "add", "d", "e", "f"]
console.log(res) // ["c"]
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3, 'add')
console.log(arr) // ["a", "b", "add", "f"]
console.log(res) // ["c", "d", "e"]
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3, 'add1', 'add2')
console.log(arr) // ["a", "b", "add1", "add2", "f"]
console.log(res) // ["c", "d", "e"]
删除
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
const res = arr.splice(2, 3)
console.log(arr) // ["a", "b", "f"]
console.log(res) // ["c", "d", "e"]