JavaScript 配列重複排除ソリューション

JavaScript 配列重複排除ソリューション

配列を処理する方法は他にもいくつかあります〜
- includes : このメソッドは、配列に指定された値が含まれているかどうかを判断するために使用されます。状況に応じて、含まれている場合は true を返し、含まれていない場合は false を返します。
- find : 最初に見つかった項目を返します
- some : ブール値を返します。そのうちの1つがtrueの場合はtrueを返します。
- every : ブール値を返します。true を返すには、すべての項目が true である必要があります。
- filter : 新しいフィルタリングされた配列を返します。true が返された場合はそれが保持され、false はフィルタリングされます。
- reduce :収束

では本題に入りましょう~(参考になれば幸いです~私はちょっといたずらっ子です!!ハハハハハ)

方法1: set: データ型ではなくデータ構造であり、メンバーは一意である

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        s = new Set(ary); とします。
        // Array.from: 設定されたデータ構造を実際の配列に変換します。
        Array.from(s) を返す
    }
    ユニーク(arr);

方法2: オブジェクト属性名を繰り返すことはできない

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        obj = {} とします。
        for(let i=0;i<ary.length;i++){
            cur = ary[i]とします。
            (オブジェクト[cur])の場合{
                //ary.splice(i,1);// 配列を折りたたむ ary[i]=ary[ary.length-1];
                ary.length--; // 最後の項目を削除します i--;
                続く;
            }
            obj[cur]=cur; // objにキーと値のペアを追加します。属性名と属性値は同じです}
    }
    ユニーク(arr);

方法3: indexOf

arr = [12,1,12,3,1,88,66,9,66]とします。
 関数 unique(ary) {
        newAry = [] とします。
        for(let i=0;i<ary.length;i++){
            cur = ary[i]とします。
            (newAry.indexOf(cur)===-1)の場合{
                newAry.push(cur);
            }
        }
        newAry を返します。
    }
    ユニーク(編曲)

方法4: 並べ替え

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
       a = ary.sort(関数 (a,b) {
           ab を返します。
       });
       for(let i=0;i<a.length;i++){
           a[i]===a[i+1]の場合{
               i+1,1 をスプライスします。
               私 - ;
           }
       }
       を返します。
   }
   ユニーク(編曲)

方法 5: 含まれます: 含まれます。配列にその項目が含まれている場合は true を返します。含まれていない場合は false を返します。

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        newAry = [] とします。
        len = ary.length;とします。
        for(let i=0;i<len;i++){
            cur = ary[i]とします。
            もし(!newAry.includes(cur)){
                newAry.push(cur);
            }
        }
        newAry を返します。
    }
    console.log(ユニーク(arr));

メソッド 6: hasOwnProperty: プロパティ名がオブジェクトのプライベート プロパティであるかどうかを確認し、ブール値を返します。

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        obj = {} とします。
        ary.filter(function (item,index,a) を返す {
            // item: 配列の各メンバー // index: メンバーに対応するインデックス // a: 配列全体 // hasOwnProperty は、プロパティが出現したかどうかを確認するために使用されます。
           obj.hasOwnProperty(typeof item+item)?false を返します:obj[typeof item+item]=true;
           if (obj.hasOwnProperty(typeof item+item)){
               偽を返す
           }それ以外{
               obj[typeof item+item] = true;
               true を返します。
           }
        })
    }
    console.log(ユニーク(arr))

方法 7: フィルター + インデックス

arr = [12,1,12,3,1,88,66,9,66]とします。
    関数 unique(ary) {
        ary.filter(function (item,index,a) を返す {
            ary.indexOf(item)===index を返します。
        })
    }
    console.log(ユニーク(arr));

方法8: スプライス

arr = [12,1,12,3,1,88,66,9,66]とします。
 関数 unique(ary) {
        for(let i=0;i<ary.length;i++){
            (j=i+1;j<ary.length;j++){
                if(ary[i]===ary[j]){
                    ary.splice(j,1);
                    j--;
                }
            }
        }
        ary を返します。
    }
    ユニーク(arr);

方法9: 再帰

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        len = ary.length;とします。
        ary = ary.sort(関数 (a,b) {
            ab を返します。
        });
        関数 loop(インデックス) {
            if(インデックス>=1){
                if(ary[インデックス]===ary[インデックス-1]){
                    ary.splice(インデックス,1);
                }
                ループ(インデックス-1)
            }
        }
        ループ(長さ-1);
        ary を返します。
    }
    console.log(ユニーク(arr));

方法 10: マップ: マップ データ構造の値ストレージ機能を活用します。

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        newAry = [] とします。
        map = new Map();
        for(let i=0;i<ary.length;i++){
            もし(!map.has(ary[i])){
                map.set(ary[i],true);
                newAry.push(ary[i]);
            }
        }
    }
    ユニーク(arr);

方法11: 減らす

arr = [12,1,12,3,1,88,66,9,66]とします。
関数 unique(ary) {
        // Reduce: 最初のものは関数であり、2 番目のパラメーターは最初のコールバックの prev に渡されます。
        ary.reduce((prev,next)=>{ を返す
            //この関数の戻り値は次回の実行のための prev です。
            prev.includes(next)?prev:[...prev,next] を返します。
        },[])
    }
    console.log(ユニーク(arr));

方法 12: 方法 1 と同様に、rest 演算子を使用して...

arr = [12,1,12,3,1,88,66,9,66]とします。
    a = [...new Set(arr)] とします。
    コンソールにログ出力します。

JS 配列ソリューションに関するこの記事はこれで終わりです。より関連性の高い JS 配列重複排除コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript で重複配列を削除する 5 つの一般的な方法
  • JavaScript 配列の重複排除とフラット化関数の紹介
  • JS配列重複排除の詳細
  • JavaScript配列の重複排除のいくつかの方法についての詳細な説明
  • JavaScript配列重複排除の詳細な説明
  • JS で配列の重複排除を実装する 7 つの方法

<<:  MySQL 並列レプリケーションの簡単な分析

>>:  UDP 接続オブジェクトの原理分析と使用例

推薦する

MySQL binlog_ignore_dbパラメータの具体的な使用法

序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...

LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています

概要バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

JavaScriptはフォームデータの非同期送信を実装します

この記事では、フォームデータの非同期送信を実装するためのJavaScriptの具体的なコードを参考ま...

Win7 インストール MySQL 5.6 チュートリアル図

目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...

MySQLオンラインDDLの使用に関する詳細な説明

目次文章LOCKパラメータアルゴリズムパラメータCOPY TABLE プロセスIN-PLACEプロセ...

openlayers6のマップオーバーレイの詳細な説明

1. オーバーレイの概要オーバーレイとは、その名の通り、別の形で地図上に表示される、覆うことを指しま...

MySQL データベースのパフォーマンス最適化の概要

目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

HTML tbody の使用

構造化テーブル (IExplore のみ) 1) 行ごとにグループ化<thead> .....

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

Windows Server 2016 リモート デスクトップ サービスの構成とライセンスのアクティブ化 (2 ユーザー)

Server 2016 のリモート デスクトップ接続のデフォルト数は 2 ユーザーです。2 人以上...

MySQL ルートパスワードを変更する 4 つの方法 (要約)

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

グリーンスタイルのウェブデザイン作品18点の最新コレクション

トイ・ストーリー3 オンラインマーケティングウェブサイトゼンモバイル鉄から鉄へスプラウトファンドバー...

Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法

1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...

Windows での MySQL 8.0.13 解凍バージョンのインストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.13のインストールグラフィックチュートリアルを紹介します...