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 サイトの他の関連記事を参照してください。