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 をインストールするチュートリアル

推薦する

Mysql 8.0.18 ハッシュ結合テスト (推奨)

ハッシュ結合ハッシュ結合は実行にインデックスを必要とせず、ほとんどの場合、現在のブロックネストループ...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

Windows 10 に TomCat をインストールするチュートリアル図

WindowsにTomCatをインストールするこの記事では、WindowsプラットフォームにTomC...

CSS 手法を使用してモジュール性を実現する例

1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...

Nginxポーリングアルゴリズムの基本的な実装方法の詳細な説明

ポーリングアルゴリズムの紹介多くの人が職場で nginx を使用しており、その設定に精通しています。...

ブラウザのキャッシュを防ぐために、js または css の後に ?v= バージョン番号を追加します。

コードをコピーコードは次のとおりです。 <span style="font-size...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

JavaScript リフレクション学習のヒント

目次1. はじめに2. インターフェース3. 簡単な例4. 結論1. はじめにMDN の公式 Web...

ダイナミッククロックを実現するJS+CSS

この記事の例では、動的な時計を実装するためのJS + CSSの具体的なコードを参考までに共有していま...

Centos7 での DNS サーバーの構築の概要

目次1. プロジェクト環境: 2: DNSサーバーの設定i: 前方解析を構成する: ii: 逆解像度...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

Docker のタイムゾーンの問題とデータ移行の問題

最新のソリューション: -v /usr/share/zoneinfo/Asia/Shanghai:/...

MySQL 8.0 の新機能 - チェック制約の紹介

目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...

MySQL 8.0.12 のインストールと設定方法のグラフィック チュートリアル (Windows10)

この記事は、参考のためにMySQL 8.0.12のインストールグラフィックチュートリアルを記録してい...

Linuxで相対パスを表現する方法

たとえば、現在のパスが /var/log で、/usr ディレクトリに移動する場合は、次のコマンドを...