slice(切割)
- slice 能够截取字符串或数组,并返回一个新的字符串或数组(不改变原字符串或数组)
截取字符串
str.slice(start, end)
let str = 'slice';
str.slice(1, 3);
// 截取下标 [1,3) 区间的字符串,左闭右开,结果为:li
截取数组
arr.slice(start, end)
let arr = [1, 2, 3, 4, 5];
arr.slice(1, 3);
// 截取下标 [1, 3) 区间的数组,左闭右开,结果为:[2, 3]
从 start 下标开始,保留到 end 下标的前一个结束,如果没有 end,就默认保留到最后一个字符结束。
使用负值截取
如果 start 使用负数则从数组的末尾进行选择。如果省略,则类似于 "0"。
let arr = [1, 2, 3, 4, 5];
arr.slice(-3, -1);
// 结果为:[3, 4]
let arr2 = ["a", "b", "c", "d", "e"];
arr2.slice(-3, -1);
// 结果为:['c', 'd']
splice(拼接)
- splice 是一个专门用于数组操作的方法。它可以对数组元素中的元素进行删除、插入和替换。替换原数组,返回删除的元素数组。
arr.splice(start, num, arg1, arg2, …)
注意:splice 操作的是原数组
删除数组元素
let arr = [1, 2, 3, 4, 5]
arr.splice(1, 2)
// 从下标为 1 的下标开始,依次向后删除 2 个元素,返回删除的元素数组:[2,3]
// 原数组改变为:[1, 4, 5]
删除并插入元素
let arr = [1, 2, 3, 4, 5]
arr.splice(1, 2, 3, 4, 5)
// 从下标为 1 的下标开始,依次向后删除 2 个元素,并将3,4,5 添加到倍删除的元素位置。
// 返回倍删除的数组:[2, 3], 原数组改变为:[1, 3, 4, 5, 4, 5]
只插入数组,不删除元素
let arr = [1, 2, 3, 4, 5]
arr.splice(1, 0, 3, 4, 5)
// 从下标为 1 的下标开始,不删除元素,并将3,4,5 添加到倍删除的元素位置。
// 返回倍删除的数组:[], 原数组改变为:[1, 3, 4, 5, 2, 3, 4, 5]
使用 splice() 对数组中的元素进行删除、插入和替换,替换原数组,返回删除的元素数组。
- 从 start 下标开始,删除 num 个元素,再在此位置插入 arg1,arg2,arg3, ……
- 如果只填了 start ,则表示删除 start 后面的所有元素