出来なくはないもののもっとスマートな方法があるんじゃないかと思って悶々としています。
よさげな方法があれば教えていただけないでしょうか。
コード: 全て選択
var array = [
{category : 0, value : 10},
{category : 0, value : 20},
{category : 0, value : 30},
{category : 0, value : 40},
{category : 1, value : 10},
{category : 1, value : 20},
{category : 2, value : 10}
];
こんな配列があるとき、category が重複した場合は value の大きいほうを残す形で category の重複を削除したいです。
一応下記で実現できている気はするのですが直感的かと言うと
半年前に自分で書いたコードの意味がサッパリ理解できなかった程度には難解で…
コード: 全て選択
array.sort((a, b) => a.value > b.value ? -1 : 1).filter((x1, index, self) => self.findIndex(x2 => x1.category === x2.category) === index)