JavaScript slice() 语法
slice() 是 JavaScript 数组的一个方法,它用于截取数组的一部分。
语法:
arr.slice(start, end)说明:
slice() 方法接收以下 2 个参数。
start(可选):截取的开始下标(包含)。如果省略,则表示从下标 0 开始。end(可选):截取的结束下标(不含)。如果省略,则表示截取到末尾。
slice(start, end) 截取范围为:[start, end),也就是:包含 start 但不包含 end。其中,end 可以省略。当 end 省略时,获取的范围为:start 到结尾。
start 和 end 的取值还可以是负数,此时 -1 表示最后一个元素,而 -2 表示倒数第 2 个元素,依此类推。
注意:
- slice() 方法不会修改原数组,而是返回一个新数组。
- 数组和字符串都有 slice() 方法。如果小伙伴们想了解更多,可以查看:JavaScript 字符串 slice() 方法。
JavaScript slice() 摘要
| 属于 | JavaScript Array 对象 |
|---|---|
| 使用频率 | 高 |
| 修改原数组 | 否 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript slice() 示例
接下来,我们通过几个简单的例子来讲解一下 JavaScript slice() 方法是如何使用的。
示例 1:slice() 基本用法
const arr = ["Python", "C++", "Java", "Go", "Rust"];
console.log(arr.slice());
console.log(arr.slice(2));
console.log(arr.slice(1, 3));运行结果如下。
[ 'Python', 'C++', 'Java', 'Go', 'Rust' ]
[ 'Java', 'Go', 'Rust' ]
[ 'C++', 'Java' ]分析:
arr.slice() 截取的范围为:0 到末尾,也就是截取整个数组,因此返回的结果是:[ 'Python', 'C++', 'Java', 'Go', 'Rust' ]。
arr.slice(2) 截取的范围为:2 到末尾,因此返回的结果是:[ 'Java', 'Go', 'Rust' ]。
arr.slice(1, 3) 截取的范围为:[1, 3),也就是包含 1 但不包含 3,因此返回的结果是:[ 'C++', 'Java' ]。
示例 2:slice() 使用负下标
const arr = ["Python", "C++", "Java", "Go", "Rust"];
console.log(arr.slice(-2));
console.log(arr.slice(-3, -1));运行结果如下。
[ 'Go', 'Rust' ]
[ 'Java', 'Go' ]分析:
arr.slice(-2) 截取的范围为:-2 到末尾,因此返回的结果是:[ 'Go', 'Rust' ]。
arr.slice(-3, -1) 截取的范围为:[-3, -1),也就是包含 -3 但不包含 -1,因此返回的结果是:[ 'Java', 'Go' ]。
slice() 与 splice() 的区别
slice() 与 splice() 这 2 个方法看着相似,其实它们有着本质上的区别:
slice():不会修改原数组,而是截取数组的一部分,然后返回一个新数组。splice():会修改原数组,它主要用于修改数组的一部分(通过添加、删除或替换元素)。splice() 会返回一个包含被删除元素的新数组(如果没有删除元素,则返回空数组)。
简单来说,当你需要 “复制” 或 “提取” 数组的一部分而不影响原数组时,应该使用 slice()。当你需要 “修改” 原数组时(例如删除或添加元素),应该使用 splice()。
