体重を達成するためのJS配列

アクトワン:

配列で、すでに要素を保持する新しい一時的な配列を作成し、の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。
}

 

おすすめ

転載: www.cnblogs.com/haohao-a/p/10960939.html