如果我有這樣一個數組:如何刪除在對象數組中出現多次的任何對象?
[
{
id: 1,
title: 'foo'
},
{
id: 2,
title: 'bar'
},
{
id: 3,
title: 'bat'
},
{
id: 4,
title: 'bantz'
},
{
id: 2,
title: 'bar'
},
{
id: 3,
title: 'bat'
}
]
而且我想返回一個包含只出現一次的所有對象的數組。所以,在這個例子中,所需的輸出將是:
[
{
id: 1,
title: 'foo'
},
{
id: 4,
title: 'bantz'
}
]
我已經試過,我發現這個使用reduce()
和indexOf()
,像this的解決方案,解決了幾種不同的方法,但他們不爲對象的工作一些原因。
任何援助將不勝感激。
所有這些對象都是不同的;從你發佈的內容來看,*沒有*它們真的是重複的。你可能有自己的標準是什麼使兩個物體相同; 「ID」是否相等? 「id」和「title」? – Pointy
它們將是具有所有相同的鍵和值的對象。我不明白你的評論。 {id:2,title:bar}如何不是{id:2,title:bar}的副本?它們具有完全相同的密鑰和值。 編輯:我只是注意到我列爲期望的結果是錯誤的。我現在編輯它。 –
@MattGween Pointy解釋了爲什麼使用indexOf的解決方案失敗。 '{}!= {}'因爲儘管它們具有相同的鍵和值,但它們是兩個單獨的對象。 – Paulpro