ページ 11

【解決】配列の操作

Posted: 2021年3月03日(水) 00:13
by WTR
ほとんどツクールと関係ない気もしますが配列の操作で行き詰まっている…と言うか
出来なくはないもののもっとスマートな方法があるんじゃないかと思って悶々としています。
よさげな方法があれば教えていただけないでしょうか。

コード: 全て選択

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)

Re: 【解決】配列の操作

Posted: 2021年3月03日(水) 01:23
by WTR
上記の問いに対する直接的な解は見つかっていませんが
そもそも category を重複させない記述が可能だったので良しとします!