JavaScript 截取数组

在 JavaScript 中,如果想要截取数组的一部分,常用的有以下 3 种方法。

  • slice()。
  • splice()。
  • toSpliced()。

使用 slice() 截取数组

在 JavaScript 中,我们可以使用 slice() 方法来截取数组的一部分。slice() 方法不会修改原数组,而是返回一个新数组。

语法:

arr.slice(start, end)

说明:

slice() 方法接收以下 2 个参数。

  • start(可选):截取的开始下标(包含)。如果省略,则表示从下标 0 开始。
  • end(可选):截取的结束下标(不含)。如果省略,则表示截取到末尾。

slice(start, end) 截取范围为:[start, end),也就是:包含 start 但不包含 end。其中,end 可以省略。当 end 省略时,获取的范围为:start 到结尾

示例 1:slice() 截取部分数组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["red", "green", "blue", "orange", "yellow"];
        const result = arr.slice(1, 4);
        console.log(result);
    </script>
</body>
</html>

运行结果如下。

["green", "blue", "orange"]

分析:

arr.slice(1, 4) 表示截取的范围是:[1, 4),也就是包含 “下标 1 的元素” 但不包含 “下标 4 的元素” 。

示例 2:slice() 截取到末尾

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["red", "green", "blue", "orange", "yellow"];
        const result = arr.slice(2);
        console.log(result);
    </script>
</body>
</html>

运行结果如下。

["blue", "orange", "yellow"]

分析:

arr.slice(2) 表示截取的范围是:下标 2 到末尾。

示例 3:slice() 使用负下标

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["red", "green", "blue", "orange", "yellow"];
        console.log(arr.slice(-2));
        console.log(arr.slice(-3, -1));
    </script>
</body>
</html>

运行结果如下。

["orange", "yellow"]
["blue", "orange"]

分析:

arr.slice(-2) 截取的范围为:-2 到末尾,因此返回的结果是:["orange","yellow"]。

arr.slice(-3, -1) 截取的范围为:[-3, -1),也就是包含 -3 但不包含 -1,因此返回的结果是:["blue","orange"]。

提示: 关于 slice() 的更详细用法,另请参阅:JavaScript 数组 slice() 方法

使用 splice() 截取数组

splice() 是 JavaScript 数组的一个方法,它用于修改数组(包括添加、删除或替换元素)。

语法:

arr.splice(start, n, item1, item2, ..., itemN)

说明:

splice() 方法接收以下 3 种参数。

  • start(必选):表示开始的位置。start 的值可以是负数,表示从结尾倒数的索引。
  • n(可选):表示删除 n 个元素。如果 n 省略,则表示删除下标为 start 的元素以及它后面的所有元素。
  • item1、item2、...、itemN(可选):表示往数组添加的新元素。

注意:

  • splice() 是一个 “破坏性” 方法,它会改变原数组。
  • splice() 方法是有返回值的,它会返回被删除的数组部分。

示例 4:splice() 基本用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["red", "green", "blue", "orange", "yellow"];
        const deleted = arr.splice(2);
        console.log(arr);
        console.log(deleted);
    </script>
</body>
</html>

运行结果如下。

[ "red", "green" ]
[ "blue", "orange", "yellow" ]

分析:

splice(2) 表示删除下标为 2(第 3 个元素)以及后面所有的元素。此外可以看到,splice() 会修改原数组,并且返回被删除的数组部分。

提示: 关于 splice() 的更详细用法,另请参阅:JavaScript 数组 splice() 方法

使用 toSpliced() 截取数组

toSpliced() 方法和 splice() 方法的语法是完全一样的。只不过 splice() 是一个 “破坏性” 方法,它会修改原数组。而 toSpliced() 是一个 “非破坏性” 方法,它不会修改原数组。

提示: 关于 toSpliced() 的更详细用法,另请参阅:JavaScript 数组 toSpliced() 方法

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号