JavaScriptでよく使われる配列重複排除実戦ソースコード

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求められます。アレイの重複を排除する方法は何ですか? 10 個の質問に答えることができれば、面接官はあなたに好印象を持つでしょう。
実際のプロジェクトでは、配列の重複排除は通常バックグラウンドで処理され、フロントエンドで処理されることはほとんどありません。日常的なプロジェクトで使用する可能性は比較的低いですが、面接中に質問された場合に備えて理解しておく必要があります。

1. オブジェクトプロパティの使用

オブジェクトの一意の属性名機能を使用します。

var arr = ['qiang','ming','tao','li','liang','you','qiang','tao'];
console.time("非冗長1");
var nonredundant1 = Object.getOwnPropertyNames(arr.reduce(function(seed, item, index) {
    seed[item] = インデックス;
    シードを返します。
},{}));
console.timeEnd("非冗長1");
console.log(非冗長1);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

2. セットデータ構造の使用

セットは配列に似た構造ですが、セットのメンバーには重複する値は存在しません。 set() 関数は、配列または配列のようなパラメータを受け入れて、セット オブジェクトを生成できます。 Array.from メソッドは、2 種類のオブジェクト (配列のようなオブジェクト (配列のようなオブジェクトと反復可能なオブジェクト)、ES6 で追加されたデータ構造 Set および Map を含む) を実際の配列に変換するために使用されます。

var arr = ['qiang','ming','tao','li','liang','you','qiang','tao'];
関数 unique(arr) {
    Array.from(new Set(arr)) を返します
}
console.time("非冗長2");
var nonredundant2 = unique(arr);
console.timeEnd("非冗長2");
console.log(非冗長2);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

3. forループとスプライスの使用

関数 unique(arr) {
    (var i = 0; i < arr.length; i++) の場合 {
        (var j = i + 1; j < arr.length; j++) の場合 {
            if (arr[i] == arr[j]) { // 最初のものは 2 番目のものと等しいので、splice メソッドは 2 番目のものを削除します arr.splice(j, 1);
                j--;
            }
        }
    }
    arr を返します。
}
console.time("非冗長3");
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
var nonredundant3 = unique(arr);
console.timeEnd("nonredundant3");
console.log(非冗長3);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

4. indexOfを使用して重複の削除を決定する

関数 unique(arr) {
    var 配列 = [];
    (var i = 0; i < arr.length; i++) の場合 {
        配列のindexOf(arr[i]) === -1の場合{
            配列.push(arr[i])
        }
    }
    配列を返します。
}
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
console.time("非冗長4");
var nonredundant4 = unique(arr);
console.timeEnd("非冗長4");
console.log(非冗長4);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

5. 並べ替えを使用して重複を並べ替えて削除する

関数 unique(arr) {
    arr = arr.sort()
    var arry = [arr[0]];
    (var i = 1; i < arr.length; i++) の場合 {
        もし (arr[i] !== arr[i - 1]) {
            arrry.push(arr[i]);
        }
    }
    リターン arry;
}
 
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
console.time("非冗長5");
var nonredundant5 = unique(arr);
console.timeEnd("非冗長5");

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

6. フィルターを使用する

関数 unique(arr) {
    var obj = {};
    arr.filter(function(item, index, arr){ を返します。
        obj.hasOwnProperty(typeof item + item) を返します。false の場合: (obj[typeof item + item] = true)
    })
}
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
console.time("非冗長6");
var nonredundant6 = unique(arr);
console.timeEnd("非冗長6");
console.log(非冗長6);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

7. マップデータ構造を使用して重複を削除する

関数 unique(arr) {
    map = new Map();
    let array = new Array(); // 配列は結果を返すために使用されます for (let i = 0; i < arr.length; i++) {
        if (map.has(arr[i])) { // キー値がある場合 map.set(arr[i], true);
        } それ以外 {
            map.set(arr[i], false); // そのようなキー値が存在しない場合はarr.push(arr[i]);
        }
    }
    配列を返します。
}
 
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
console.time("非冗長7");
var nonredundant7 = unique(arr);
console.timeEnd("非冗長7");
console.log(非冗長7);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

8. 重複を削除するにはreduceとincludeを使用する

関数 unique(arr){
    arr.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]); を返します。
}
var arr = ['qiang', 'ming', 'tao', 'li', 'liang', 'you', 'qiang', 'tao'];
console.time("非冗長8");
var nonredundant8 = unique(arr);
console.timeEnd("非冗長8");
console.log(非冗長8);

結果は次のとおりです。

8つのよく使われるJavaScript配列重複排除の実践的なソースコード「実用的な乾物」

よく使われる JavaScript 配列重複排除の実践的なソースコードに関するこの記事はこれで終わりです。より関連性の高い js 配列重複排除コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript 配列重複排除問題の詳細な研究
  • JavaScript 配列重複排除ソリューション
  • Javascript配列の重複排除のいくつかの方法の詳細な説明
  • JavaScript配列重複排除の詳細な説明
  • JS オブジェクト配列の重複排除のための 3 つの方法の例と比較
  • jsは多次元配列を1次元配列に変換し、それを並べ替えます
  • JavaScript配列の重複排除のいくつかの方法についての詳細な説明

<<:  Linuxでのcrontabの使い方と注意点の詳しい説明

>>:  OEL7.6 ソースコードから MYSQL5.7 をインストールするチュートリアル

推薦する

露滴アニメーション効果を実装するための Three.js サンプル コード

序文みなさんこんにちは。CSS ウィザードの alphardex です。この記事では、three.j...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

JavaScript 配列の Reduce() メソッドの構文と例の分析

序文Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が単一の値...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

Nginx イントラネット スタンドアロン リバース プロキシの実装

目次1 Nginxのインストール2 Nginxの設定3 ホストファイルを変更する4 テストNginx...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

Vue.jsは背景テーブルコンポーネントのカプセル化を管理します

目次問題分析なぜカプセル化なのかパッケージの内容は何ですか?テーブルコンポーネントをカプセル化するデ...

Vue プロジェクトで垂直テーブルを 2 つの方法で実装するアイデアの分析

問題の説明私たちのプロジェクトでは、水平方向のテーブルが一般的ですが、必要に応じて垂直方向のテーブル...

Nginx は高可用性クラスタ構築を実装します (Keepalived+Haproxy+Nginx)

1. コンポーネントと実装機能Keepalived: Haproxy サービスの高可用性を実現し、...

Linux システムで MySQL の文字セットを UTF8 に変更する手順

目次1. データベース内の MySQL ステータスを確認します。 2. 設定ファイルを変更します。 ...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

MySQLインストール後のデフォルトデータベースの役割の詳細な説明

MySQL を学習すると、インストール後にいくつかのデフォルトのデータベースが付属していることに気付...

垂直グリッドと漸進的な行間隔の例

新しい質問急いで来て、急いで行ってください。 「垂直グリッドとプログレッシブ行間隔 (パート 1)」...

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...