JavaScript - 配列内のオブジェクトの重複をすべて削除する方法


方法1: フィルタリングとSetを使用する方法

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 1, name: 'John' },
  { id: 3, name: 'Mike' },
  { id: 2, name: 'Jane' }
];
const uniqueArray = array.filter((obj, index, self) =>
  index === self.findIndex((o) => (
    o.id === obj.id && o.name === obj.name
  ))
);
console.log(uniqueArray);

方法2: reduce()を使用する方法

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 1, name: 'John' },
  { id: 3, name: 'Mike' },
  { id: 2, name: 'Jane' }
];
const uniqueArray = array.reduce((acc, obj) => {
  const duplicate = acc.find((o) => o.id === obj.id && o.name === obj.name);
  if (!duplicate) {
    acc.push(obj);
  }
  return acc;
}, []);
console.log(uniqueArray);

方法3: Mapを使用する方法

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 1, name: 'John' },
  { id: 3, name: 'Mike' },
  { id: 2, name: 'Jane' }
];
const map = new Map();
const uniqueArray = [];
array.forEach((obj) => {
  const key = obj.id + obj.name;
  if (!map.has(key)) {
    map.set(key, obj);
    uniqueArray.push(obj);
  }
});
console.log(uniqueArray);

これらの方法を使用することで、配列内のオブジェクトの重複をすべて削除することができます。どの方法も効果的ですが、状況に応じて最適な方法を選択してください。

以上が、JavaScriptで配列内のオブジェクトの重複をすべて削除する方法のいくつかの例です。これにより、重複を効果的に処理し、クリーンなデータを取得することができます。