如何清空 JavaScript 数组?

3
var arr = [-3, -34, 1, 32, -100];

如何删除所有项并留下一个空数组?

使用这个好吗?

arr = [];

非常感谢您!

4
你已经回答了自己的问题,至少是第一个问题! - Stephen
可能是如何在JavaScript中清空数组?的重复问题。 - Abid Rahman K
1
可能是如何在JavaScript中清空数组?的重复问题。 - Mohammad Usman
8个回答

20
如果该数组没有其他引用,那么只需在原来的位置上创建一个新的空数组即可:
array = [];

如果您需要修改一个已经存在的数组—例如,如果该数组在其他地方有引用:

var array1 = [-3, -34, 1, 32, -100];
var array2 = array1;

// This.
array1.length = 0;

// Or this.
while (array1.length > 0) {
    array1.pop();
}

// Now both are empty.
assert(array2.length == 0);

1
这就是答案。在发现John已经完成之前,我写了几乎相同的内容。 - Tim Down

4

简单、易操作且安全的方法是:

arr.length = 0;

创建一个新的数组实例会将引用重定向到另一个新实例,但不会释放旧实例。

太好了!感谢@a.boussema,但是没有释放旧的。 - Pedro Ferreira

2
其中之一:
var a = Array();
var a = [];

推荐使用 arr = [],因为它在代码方面占用空间较少。 - Zoidberg
1
::鼓声-镲铛声:: - Stephen

2

正如你所说:

arr = [];

2

以下是在JavaScript中清空数组的方法:

  1. arr = [];
  2. arr.splice(0, arr.length);
  3. arr.length = 0;

0

使用 arr = []; 清空数组比循环并取消每个键或取消然后重新创建对象要高效得多。


0

创意新颖:

while(arr.length) arr.pop();

2
可以运行,但效率不高。arr.length = 0 更快更易读。 - Tim Down

0

清空/清除数组的方法

  1. 如果您没有来自其他地方的引用,这是完美的选择。(使用新数组进行替换)

arr = []

  1. 这种方法不会释放数组中的对象,并可能对内存产生影响。(将属性长度设置为0)

arr.length = 0

  1. 从数组中删除所有元素并实际清空原始数组。(整个数组切片)

arr.splice(0,arr.length)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接