アクトワン:
配列で、すでに要素を保持する新しい一時的な配列を作成し、のindexOf()は反復することができます
VaRの A = 新たな新しいアレイ(1,2,2,2,2,5,3,2,9,5,6,3 ); Array.prototype.unique1 = 関数(){ VAR N- = []; // A新しい一時的な配列 のための(VARは、 i = 0; iは< この .LENGTHと、iは++ ){ // 配列の電流iが一時配列に保存されている場合はスキップされる IF(n.indexOf(この [i])と-1 == ){ n.push(この[I]); } } 戻りN-; } はconsole.log(a.unique1())。
アクトII:
既存の要素を格納するハッシュテーブルを使用します
= Array.prototype.unique2の関数(){ VARハッシュ= {}、 N- = []; // ハッシュをハッシュテーブルとして、N一時配列である ため(VARの I = 0;私は< この .LENGTHを、Iは++ ){ IF(!ハッシュ[ この [I]]){ // ハッシュテーブルエントリが最新でない場合 、ハッシュ[ この [I] = trueに ; // 格納されたハッシュテーブル n.push(この [I]); // 現在の要素一時配列をプッシュ } } 戻りN-; }
法III:
アレイ素子を用いIndexOfメソッド位置決意が最初に表示され、現在の位置である、のindexOf()は、反復することができます
= Array.prototype.unique3の関数(){ VAR N- = [ この [0 ]; のため(VAR。I = 1; Iは< この .LENGTHを、Iは++) // 第二トラバースから { // 現在の配列要素もし最初の位置は、I配列には存在しない // ノートが要素繰り返される IF(この .indexOf(この [I])== I){ n.push(この[I]); } } 戻りN-; }
第4幕:
まず、再ソートするために行きます
Array.prototype.unique4 = 関数(){ この .sort(関数は(a、b)は{ 返す - ;} B)を VAR N = [ この [0 ]]。 用(VAR I = 1; I < 本 .LENGTH; iは++ ){ 場合(この [I] =!この [I-1 ]){ n.push(この[I])。 } } 戻りN。 }