如何清空一个javascript数组?

时间:2010-08-27 16:16:53

标签: javascript arrays

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

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

使用它是个好主意吗?

arr = [];

非常感谢!

8 个答案:

答案 0 :(得分:18)

如果没有对该数组的其他引用,那么只需在旧数组的顶部创建一个新的空数组:

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 :(得分:2)

其中一个:

var a = Array();
var a = [];

答案 2 :(得分:2)

就像你说的那样:

arr = [];

答案 3 :(得分:2)

简单,容易和安全的方法是:

arr.length = 0;

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

答案 4 :(得分:0)

使用arr = [];清空数组远比处理循环和取消设置每个键,或者取消设置然后重新创建对象更有效。

答案 5 :(得分:0)

虽然您可以像其他一些答案一样将其设置为新数组,但我更喜欢使用clear()方法:

array.clear();

答案 6 :(得分:0)

开箱即用的想法:

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

答案 7 :(得分:0)

清理/清空数组的方法

  1. 如果您没有其他地方的文献,这是完美的。 (用新数组替换)

arr = []

  1. 这不会释放此数组中的对象,并且可能会影响内存。 (将道具长度设置为0)

arr.length = 0

  1. 从数组中删除所有元素,并实际上清理原始数组。 (拼接整个数组)

arr.splice(0,arr.length)