ホームページ > ウェブフロントエンド > フロントエンドQ&A > ノード配列から重複を削除する 3 つの方法は何ですか?

ノード配列から重複を削除する 3 つの方法は何ですか?

WBOY
リリース: 2022-02-28 16:09:33
オリジナル
3588 人が閲覧しました

方法: 1. マップ データ構造を使用して重複排除を実現し、配列の各要素をマップ内のキーとして保存します; 2. es6 の set メソッドを使用して重複排除を実現します。構文は「Set」です。 (array) "; 3. 重複排除を実現するには、indexOf を指定した forEach ステートメントを使用します。

ノード配列から重複を削除する 3 つの方法は何ですか?

この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。

ノード配列の重複を排除する 3 つの方法は何ですか?

最初の方法は、Map データ構造を使用して重複を排除することです

空の Map データ構造を作成し、配列を走査します重複を排除する必要がある場合は、配列の各要素をキーとしてマップに保存します。同じキー値はマップに表示されないため、最終結果は重複排除の結果です

function a(arr) {
                let map = new Map();
                let array = new Array();  // 数组用于返回结果
                for (let i = 0; i < arr.length; i++) {
                    if (map.has(arr[i])) {  // 如果有该key值
                        map.set(arr[i], true);
                    } else {
                        map.set(arr[i], false);   // 如果没有该key值
                        array.push(arr[i]);
                    }
                }
                return array;
            }
            var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
            console.log(a(arr)) //[1,2,3,4,5]
ログイン後にコピー

2 番目の方法は、ES6 のセットを使用することであり、これが最も単純な重複排除方法です

let arr2 = [1, 2, 3, 4, 5, 5, 4, 3];
            let res = [...new Set(arr2)];
            console.log(res);
ログイン後にコピー

3 番目のタイプの各 IndexOf は重複排除を実装します

var arr3 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
            var b = distinct(arr3);
            function distinct(arr) {
                result = [],
                    len = arr3.length; //len=10;
                arr3.forEach(function (v, i, arr3) {
                    var bool = arr3.indexOf(v, i + 1);
                    //从传入参数的下一个索引值开始寻找是否存在重复
                    if (bool === -1) {
                        result.push(v);
                    }
                })
                return result;
            };
            console.log(b.toString()); //1,2,3,4,5
ログイン後にコピー

推奨学習: 「nodejs ビデオ チュートリアル

以上がノード配列から重複を削除する 3 つの方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート