例:次の配列から重複する要素を削除します (複数のデータ型を例として挙げます) const arr = [1, 2, 2, 'abc', 'abc', true, true, false, false, undefined, undefined, NaN, NaN] 1. Set()+Array.from() を使用する
const 結果 = Array.from(new Set(arr)) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN ]
2. 2層ループ+アレイ接合方式の使用配列要素は 2 つのループを通じて 1 つずつ比較され、その後、 関数removeDuplicate(arr) { len = arr.lengthとします (i = 0; i < len; i++) の場合 { (j = i + 1; j < len; j++) の場合 { もし (arr[i] === arr[j]) { 配列jを1に連結する len-- // ループ回数を減らしてパフォーマンスを向上させる j-- // 加算後も j の値が変わらないようにする} } } リターン } const 結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN, NaN ] 3. 配列のindexOfメソッドを使用する新しい空の配列を作成し、重複排除する必要がある配列を走査して、配列要素を新しい配列に格納します。格納する前に、配列に現在の要素がすでに含まれているかどうかを判断します。含まれていない場合は、格納します。この方法では NaN の重複も削除できません。 indexOf() メソッド: 関数removeDuplicate(arr) { 定数newArr = [] arr.forEach(アイテム => { (newArr.indexOf(item) === -1)の場合{ newArr.push(アイテム) } }) return newArr // 新しい配列を返す } 定数結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN, NaN ] 4. 配列のincludesメソッドを使用するこのメソッドのロジックは include() メソッド:配列に指定された値が含まれているかどうかを判断するために使用されます。状況に応じて、値が含まれている場合は true を返し、含まれていない場合は false を返します。 関数removeDuplicate(arr) { 定数newArr = [] arr.forEach(アイテム => { if (!newArr.includes(item)) { newArr.push(アイテム) } }) newArrを返す } const 結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN ]
簡単なテストは、NaN に対する include() の判断です。 定数testArr = [1, 'a', NaN] console.log(testArr.includes(NaN)) // 真 5. 配列のfilter()+indexOf()を使用する
filter() メソッド:指定された関数によって実装されたテストに合格したすべての要素を含む新しい配列を作成します。 関数removeDuplicate(arr) { arr.filter((item, index) => { を返します。 arr.indexOf(item) === インデックスを返します }) } 定数結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined ]
定数testArr = [1, 'a', NaN] console.log(testArr.indexOf(NaN)) // -1 6. Map() の使用Map オブジェクトは、 マップ オブジェクト:キーと値のペアを保存し、キーの元の挿入順序を記憶するために使用されます。任意の値 (オブジェクトまたはプリミティブ) をキーまたは値として使用できます。 関数removeDuplicate(arr) { 定数マップ = 新しいマップ() 定数newArr = [] arr.forEach(アイテム => { if (!map.has(item)) { // has() は、マップにアイテムの属性値が含まれているかどうかを判断するために使用されます。map.set(item, true) // set() を使用して、アイテムをマップに設定し、その属性値を true に設定します。 newArr.push(アイテム) } }) newArrを返す } const 結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN ]
7. 利用対象その実装の考え方は 関数removeDuplicate(arr) { 定数newArr = [] 定数オブジェクト = {} arr.forEach(アイテム => { if (!obj[item]) { newArr.push(アイテム) obj[item] = true } }) newArrを返す } const 結果 = removeDuplicate(arr) console.log(結果) // [ 1, 2, 'abc', true, false, undefined, NaN ] これで、JS で配列の重複排除を実装する 7 つの方法についての記事は終了です。JS 配列の重複排除の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: favico.ico---ウェブサイトicoアイコン設定手順
>>: SQL 実践演習: オンライン モール データベースの製品カテゴリ データ操作
序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...
1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...
1 メソッドは、データをサーバーに送信する方法を指定するプロパティです。 2 post と get ...
高い同時実行性とは何ですか?デフォルトの Linux カーネル パラメータは、最も一般的なシナリオ向...
1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...
目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...
序文binlog は、MySQL のすべての追加、削除、および変更ステートメントを記録するバイナリ ...
最近、自宅サーバーにクラウドディスクを導入する予定なので、一連の環境構築作業を始めました。MySQL...
目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...
このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...
1. CSSを通す必要がある背景CSS におけるメディアクエリの用途は、デバイスサイズの判別、マウス...
目次インデックスの適切な使用1. 通常のインデックスのデメリット2. 主キーインデックスの落とし穴3...
効果: GROUP_CONCAT関数は、フィールド値を文字列に連結することができます。デフォルトの区...
最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...
<br />私の仕事で使用しているアノテーションの書き方の基準をまとめました。技術的な内...