1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScript オブジェクトの値で重複したものを削除する

Posted at

やりたいこと

以下のように、中身の値( id や key など要素を一意に決めるものを想定しています)が重複しているオブジェクトがあった時、重複している部分だけ削除したオブジェクトを作りたい。

idaa が重複しているので、

sample.js
const objectA = [ {id: aa, value: "banana”},
                  {id: bb, value: "apple"},
           {id: cc, value: "orange"},
                  {id: aa, value: "banana"},
                  {id: dd, value: "grape"} ];

こうしたい

sample.js
const objectA = [ {id: aa, value: "banana”},
                  {id: bb, value: "apple"},
           {id: cc, value: "orange"},
                  {id: dd, value: "grape"} ];

やりかた

以下のように、filterfindIndexを用いてフィルタリングすることで、重複した値を持つ要素を削除したオブジェクトを作ることができます。item.ididの部分は調べたいプロパティ名に適宜変えてやってみてください。

sample.js

    const filteredObjectA = objectA.filter(
      (item, index, array) => {
        return (
          array.findIndex(nextItem => item.id === nextItem.id) ===
          index
        );
      }
    );
1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?