ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 配列から重複する値を削除するにはどうすればよいですか?

JavaScript 配列から重複する値を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-22 12:22:11
オリジナル
940 人が閲覧しました

How Can I Remove Duplicate Values from a JavaScript Array?

JS 配列から重複する値を削除する

JavaScript 配列内の要素の重複は一般的な問題です。これに対処するために、さまざまな方法を使用できます。

Set および Spread 構文:

最も簡潔な解決策は Set コンストラクターと Spread 構文を利用します:

uniq = [...new Set(array)];
ログイン後にコピー

ナイーブアプローチ:

簡単にするために、インデックスに基づいて要素をフィルタリングする直接的なアプローチが含まれます:

uniqueArray = a.filter(function(item, pos) {
    return a.indexOf(item) == pos;
});
ログイン後にコピー

ハッシュテーブルの使用:

Aより効率的な方法では、オブジェクトのプロパティを次のように使用してハッシュテーブルを利用します。キー:

function uniq(a) {
    var seen = {};
    return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
    });
}
ログイン後にコピー

アプローチの組み合わせ:

多様な配列を処理するために、ハイブリッド ソリューションではプリミティブのハッシュテーブルとオブジェクトの線形検索を組み合わせます:

function uniq(a) {
    var prims = {"boolean":{}, "number":{}, "string":{}}, objs = [];

    return a.filter(function(item) {
        var type = typeof item;
        if(type in prims)
            return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true);
        else
            return objs.indexOf(item) >= 0 ? false : objs.push(item);
    });
}
ログイン後にコピー

並べ替えとフィルタリング:

フィルタリング前の並べ替えでは、隣接する要素に基づいて重複を削除する別のオプションが提供されます:

function uniq(a) {
    return a.sort().filter(function(item, pos, ary) {
        return !pos || item != ary[pos - 1];
    });
}
ログイン後にコピー

カスタム比較:

一意の比較では、等しい「キー」を使用してコールバックを渡すことができます。フィルタ済み:

function uniqBy(a, key) {
    var seen = {};
    return a.filter(function(item) {
        var k = key(item);
        return seen.hasOwnProperty(k) ? false : (seen[k] = true);
    })
}
ログイン後にコピー

以上がJavaScript 配列から重複する値を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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