【解決】配列の操作

アバター
WTR
記事: 559
登録日時: 2015年12月22日(火) 19:14

【解決】配列の操作

投稿記事by WTR » 2021年3月03日(水) 00:13

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

コード: 全て選択

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)

Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
WTR
記事: 559
登録日時: 2015年12月22日(火) 19:14

Re: 【解決】配列の操作

投稿記事by WTR » 2021年3月03日(水) 01:23

上記の問いに対する直接的な解は見つかっていませんが
そもそも category を重複させない記述が可能だったので良しとします!
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/

“MZ:質問” へ戻る