- Setを使用する方法: Setオブジェクトは一意な値の集合を持ちます。配列をSetに変換し、重複を削除します。
const array = [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 1, name: 'Apple' }, // 重複したオブジェクト
{ id: 3, name: 'Orange' },
{ id: 2, name: 'Banana' }
// 重複したオブジェクト
];
const uniqueArray = Array.from(new Set(array.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArray);
- filterとindexOfを使用する方法: filterメソッドとindexOfメソッドを組み合わせて、重複を削除します。
const array = [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 1, name: 'Apple' }, // 重複したオブジェクト
{ id: 3, name: 'Orange' },
{ id: 2, name: 'Banana' }
// 重複したオブジェクト
];
const uniqueArray = array.filter((obj, index, self) =>
index === self.findIndex((el) =>
el.id === obj.id && el.name === obj.name
)
);
console.log(uniqueArray);
- lodashライブラリを使用する方法: lodashライブラリのuniqBy関数を使用して、重複を削除します。
const _ = require('lodash');
const array = [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 1, name: 'Apple' }, // 重複したオブジェクト
{ id: 3, name: 'Orange' },
{ id: 2, name: 'Banana' }
// 重複したオブジェクト
];
const uniqueArray = _.uniqBy(array, JSON.stringify);
console.log(uniqueArray);
これらの方法を使用すると、JavaScriptで配列の中の重複したオブジェクトを削除することができます。ご参考までにお使いください。