JavaScriptで配列の重複するオブジェクトを削除する方法


  1. filter()メソッドを使用する方法:
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((el) => (
    el.id === obj.id && el.name === obj.name
  ))
);
console.log(uniqueArray);
  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 = [...new Set(array.map(JSON.stringify))].map(JSON.parse);
console.log(uniqueArray);
  1. 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 found = acc.find(item =>
    item.id === obj.id && item.name === obj.name
  );
  if (!found) {
    acc.push(obj);
  }
  return acc;
}, []);
console.log(uniqueArray);

これらの方法を使用すると、JavaScriptで配列内の重複するオブジェクトを効率的に削除することができます。