ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で配列から重複要素を削除する方法のアイデアとコード例の詳細な説明
プログラムを作成する過程で、配列から重複した要素を削除する必要に遭遇することがよくあります。 小さな配列の場合、二重ループを使用してこれを実現できます。 しかし、配列が比較的大きい場合、その中には数万の要素が含まれます。そうなると二重循環を使うことは非常に非効率になります。 ここで、js の機能を使用して、配列から重複要素を削除する効率的なメソッドを作成します。
<script> function unique(data){ data = data || []; var a = {}; for (var i=0; i<data.length; i++) { var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; } function test(){ var arr = [9,1,3,8,7,7,6,6,5,7,8,8,7,4,3,1]; var arr1 = unique(arr); alert(arr1.join(",")); } test(); </script>
出力結果:
9,1,3,8,7,6,5,4
JS配列の重複排除は、配列内の重複要素を削除することです:
Array.prototype.delRepeat=function(){ var newArray=new Array(); var len=this.length; for (var i=0;i<len ;i++){ for(var j=i+1;j<len;j++){ if(this[i]===this[j]){ j=++i; } } newArray.push(this[i]); } return newArray; }
しかし、明らかにここにforループが埋め込まれています別のfor大量のデータを処理する場合、ループは非常に時間がかかるはずです。非効率です! 検索と専門家のアドバイスを経て、新しいメソッドが最適化されました:
Array.prototype.delRepeat=function(){ var newArray=[]; var provisionalTable = {}; for (var i = 0, item; (item= this[i]) != null; i++) { if (!provisionalTable[item]) { newArray.push(item); provisionalTable[item] = true; } } return newArray; }
は一時的な ProvisioningTable オブジェクトを使用し、配列の値をキーとして使用します。 ProvisionTable オブジェクトの値に対応する値が存在しない場合、この配列の値を新しい配列にプッシュします。
以上がJavaScript で配列から重複要素を削除する方法のアイデアとコード例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。