Lodash 配列から重複を削除する 質問する

Lodash 配列から重複を削除する 質問する

これは私のデータです:

[
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello-how-are-you',
        id: "23"    
    },
    {
        url: 'www.example.com/i-like-cats',
        id: "24"    
    },
    {
        url: 'www.example.com/i-like-pie',
        id: "25"    
    }
]

Lodash では、重複した ID キーを持つオブジェクトを削除するにはどうすればよいでしょうか? フィルター、マップ、一意の機能を使った方法があるようですが、よくわかりません。

実際のデータセットははるかに大きく、キーも多くありますが、概念は同じです。

ベストアンサー1

_.uniqueLodashの現在のバージョン4.0.0では動作しなくなりました。この破壊的な変化の機能は、、、、およびに分割_.uniqueされました。_.uniq_.sortedUniq_.sortedUniqBy_.uniqBy

次のように使用できます_.uniqBy:

_.uniqBy(data, function (e) {
  return e.id;
});

...または次のようにします:

_.uniqBy(data, 'id');

ドキュメンテーション:https://lodash.com/docs#uniqBy


Lodash の古いバージョン (< 4.0.0) の場合:

データは各オブジェクトのプロパティによって一意でありid、データはdata変数に格納されていると仮定すると、_.unique()次のように機能します:

_.unique(data, function (e) {
  return e.id;
});

または、単純に次のようにします。

_.uniq(data, 'id');

おすすめ記事