ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で配列をクリアする 3 つの方法の詳細な紹介

JavaScript で配列をクリアする 3 つの方法の詳細な紹介

黄舟
黄舟オリジナル
2017-03-22 14:24:361700ブラウズ

この記事では主にJavaScriptで配列をクリアする3つの方法を紹介します。非常に良い基準値を持っています。以下のエディタで見てみましょう

方法1、splice

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

方法2、lengthには値0が割り当てられます

この方法は、Javaなどの他の言語では非常に興味深いものです。配列の長さは読み取り専用なので、値を割り当てることはできません。たとえば、

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 は長さを再割り当てするだけであるのに対し、方法 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);

テスト結果:

a.length=094 29141431a=[]00000 00
IE6 IE7 IE8 IE9 Firefox Safari Chrome
上記の結果からわかるように、方法 3 の方が高速かつ効率的です。

テスト結果から、元の配列の他の属性が保持されない場合は、Ext で採用された方法がより推奨されます。

以上がJavaScript で配列をクリアする 3 つの方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。