1. ホーム
  2. ジャバスクリプト

[解決済み】Lodashが配列から重複を削除する。

2022-03-28 12:52:01

質問

これは私のデータです。

[
    {
        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キーが重複しているオブジェクトを削除するにはどうしたらよいでしょうか? filter、map、uniqueを使った何かですが、よくわかりません。

私の実際のデータセットはもっと大きく、もっと多くのキーを持っていますが、コンセプトは同じはずです。

どのように解決するのですか?

_.unique は、現在のLodashのバージョン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');