首頁  >  文章  >  web前端  >  詳細介紹JavaScript中清空數組的三種方式

詳細介紹JavaScript中清空數組的三種方式

黄舟
黄舟原創
2017-03-22 14:24:361690瀏覽

本文主要介紹了在JavaScript中清空陣列的三種方式。具有很好的參考價值。下面跟著小編一起來看下吧

方式1,splice

var ary = [1,2,3,4]; 
ary.splice(0,ary.length); 
console.log(ary); // 输出 [],空数组,即被清空了

方式2,length賦值為0

這種方式很有意思,其它語言如Java,其陣列的length是唯讀的,不能被賦值。如

int[] ary = {1,2,3,4}; 
ary.length = 0;

Java中會報錯,編譯通不過。

而JS中則可以,且將陣列清空了,如

var ary = [1,2,3,4]; 
ary.length = 0; 
console.log(ary); // 输出 [],空数组,即被清空了

目前 Prototype中陣列的 clear 方法和mootools庫中陣列的 empty 方法使用這種方式清空陣列。

方式3,賦值為[]

var ary = [1,2,3,4]; 
ary = []; // 赋值为一个空数组以达到清空原数组

Ext庫Ext.CompositeElementLite類別的 clear 方法使用這種方式清空。

方式2 保留了陣列其它屬性,方式3 則未保留。

很多人認為方式2的效率很高些,因為只是給length重新賦值了,而方式3則重新建立個物件。經 測試 恰恰是方式3的效率高。測試程式碼:

var a = []; 
for (var i=0; i< 1000000; i++){ 
 a.push(i); 
} 
var start = new Date(); 
//a = []; 
a.length = 0; 
var end = new Date(); 
alert(end - start);

測試結果:

##IE7IE8IE9FirefoxSafari##a.length= 0##30 000
  IE6 #Chrome
94 29 14 #1 4##1 a=[]
0 0 0
#以上結果可看到:方式3更快,效率更高。

從測試結果來看如果不保留原數組的其它屬性Ext所採用的方式更值得推薦。

以上是詳細介紹JavaScript中清空數組的三種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn