JavaScript 清空数组

在 JavaScript 中,如果想要清空一个数组(即删除数组的所有元素),主要有以下 3 种方法。

  • 将 length 属性设置为 0。
  • 重新赋值空数组。
  • 使用 splice() 方法。

将 length 属性设置为 0

在 JavaScript 中,我们可以将数组的 length 属性值设置为 0,从而达到清空数组的目的。这是清空数组最简洁,也是最高效的方法。

不过需要注意的是,将 length 属性设置为 0,会修改原数组(即删除数组的所有元素)。

示例 1:设置 arr.length = 0

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["HTML", "CSS", "JavaScript", "Vue", "React"];

        // 设置长度为0
        arr.length = 0;

        console.log(arr);
        console.log(arr.length);
    </script>
</body>
</html>

运行结果如下。

[]
0

分析:

arr.length = 0; 会直接修改原数组 arr,并删除了 arr 中的所有元素。这种方法对于所有引用该数组的地方都会生效,因为操作的是同一个数组对象。

提示: 在实际开发中,首选推荐使用 arr.length = 0; 这种方式来清空数组,这是最简洁且性能最好的方法。

赋值为空数组 “[]”

在 JavaScript 中,我们可以给数组变量重新赋值为一个新的空数组,这样同样可以清空数组。

这种方法实际上是创建了一个新的空数组,并将变量指向这个新的空数组。原数组(如果不再有其他引用指向它)将被垃圾回收机制回收。

示例 2:赋值为空数组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        let arr = ["HTML", "CSS", "JavaScript", "Vue", "React"];

        // 赋值为空数组
        arr = [];

        console.log(arr);
        console.log(arr.length);
    </script>
</body>
</html>

运行结果如下。

[]
0

示例 3:多个引用的情况

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        let arr = ["HTML", "CSS", "JavaScript", "Vue", "React"];
        const temp = arr;
        console.log(arr);
        console.log(temp);

        // 将 arr 指向一个新的空数组
        arr = [];

        console.log(arr);
        console.log(temp);
    </script>
</body>
</html>

运行结果如下。

[ "HTML", "CSS", "JavaScript", "Vue", "React" ]
[ "HTML", "CSS", "JavaScript", "Vue", "React" ]
[]
[ "HTML", "CSS", "JavaScript", "Vue", "React" ]

分析:

在这个例子中,arr = []; 会将 arr 变量指向了一个全新的空数组。然而,变量 temp 仍然指向最初的的数组(即 ["HTML", "CSS", "JavaScript", "Vue", "React"])。

也就是说,如果数组有多个引用,只有被重新赋值的那个引用会指向空数组,其他引用保持不变。如果我们的目的是修改原始数组本身,那么这种方法可能不适用。

注意: 如果数组是使用 const 声明的,我们不能使用 arr = []; 的方式,因为 const 声明的变量不能被重新赋值。对于使用 const 声明的数组,我们应该使用修改数组内容的方法,比如 length = 0 或 splice()。

使用 splice() 方法

在 JavaScript 中,我们还可以使用数组的 splice() 方法来清空数组。splice() 方法可以通过删除从指定索引开始的所有元素来清空数组,它也会修改原始数组。

语法:

arr.splice(0, arr.length)

说明:

第一个参数 0 表示从数组的第一个元素(索引为 0)开始删除。

第二个参数 arr.length 表示要删除的元素数量,即删除数组中的所有元素。

示例 4:使用 splice() 方法清空数组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        const arr = ["HTML", "CSS", "JavaScript", "Vue", "React"];

        // 清空数组
        arr.splice(0, arr.length);

        console.log(arr);
        console.log(arr.length);
    </script>
</body>
</html>

运行结果如下。

[]
0

分析:

arr.splice(0, arr.length); 会修改 arr 数组本身,并删除所有元素。与 length = 0 类似,这种方法也会影响所有指向该数组的引用。

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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