2010-08-27 100 views
2
var arr = [-3, -34, 1, 32, -100]; 

如何刪除所有項目並只留下空數組?如何清空JavaScript數組?

這是一個好主意嗎?

arr = []; 

非常感謝!

+4

您回答了您自己的問題,至少第一個問題! – Stephen 2010-08-27 16:17:45

+0

可能重複[如何在JavaScript中清空數組?](http://stackoverflow.com/questions/1232040/how-to-empty-an-array-in-javascript) – 2013-04-25 17:54:22

+0

可能重複[如何清空在JavaScript中的數組?](https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript) – 2017-11-16 08:06:55

回答

2

這兩個中的一個:

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

arr = []被推薦,因爲它佔用更少的空間(代碼明智的)。 – Zoidberg 2010-08-27 16:18:37

+1

它更性感。 – Stephen 2010-08-27 16:20:10

+1

@Stephen:'[]'讓你打開?字面意思是 – BoltClock 2010-08-27 16:21:30

0

使用arr = [];空數組遠比做這樣的事情循環和取消每個按鍵更有效,或註銷然後重新創建該對象。

0

雖然你可以將其設置爲像一些其他的答案的一個新的數組,我更喜歡使用clear()方法這樣:

array.clear(); 
16

如果有到陣列的任何其他引用,然後只要創建過舊之上的新的空數組:

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); 
+0

這就是答案。在發現約翰已經完成之前,我寫了幾乎相同的內容。 – 2010-08-27 22:53:18

0

開箱即用的想法:

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

會工作,但效率不高。 'arr.length = 0'會更快,更容易閱讀。 – 2010-08-27 22:52:13

+0

具有開箱不良的表現。 – 2017-11-16 08:08:04

2

簡單,方便和安全的方式來做到這一點是:

arr.length = 0; 

使得陣列的新實例,參考重定向到一個又一個新實例,但沒有釋放舊的。