どうも、ちょげ(@chogetarou)です。
Objectの連想配列の最大値を取得する方法を紹介します。
方法

Objectの連想配列の最大値を取得する方法は、2つあります。
スプレッド構文
1つは、スプレッド構文を使う方法です。
まず、Math.max()を呼び出します。
Math.max()の引数で、スプレッド構文を使ってObject.values()を展開します。
Object.values()の引数には、連想配列を指定します。
const max = Math.max(...Object.values(array));
上記のMath.max()は、Object.values()の引数に指定した連想配列の最大値を取得します。
使用例
const numbers = { "one": 1, "two": 2, "three": 3, "ten": 10, "four": 4, "five": 5 };
const max = Math.max(...Object.values(numbers));
console.log(max);
出力:
10
reduce()
もう1つは、reduce()を使う方法です。
まず、Object.values()を呼び出します。
Object.values()の引数にObjectの連想配列を指定します。
そして、Object.values()からreduce()を呼び出します。
reduce()の引数に、三項演算子を使って2つの引数で大きい方を返すラムダ式を指定します。
const max = Object.values(array).reduce((x,y) => x > y ? x : y);
上記のreduce()は、Object.values()の引数に指定した連想配列の最大値を取得します。
使用例
const numbers = { "one": 1, "two": 2, "three": 3, "ten": 10, "four": 4, "five": 5 };
const max = Object.values(numbers).reduce((x,y) => x > y ? x : y);
console.log(max);
出力:
10
まとめ
Objectの連想配列の最大値を取得する方法は、次の2つです。
- スプレッド構文を使う方法
const max = Math.max(...Object.values(array));
- reduce()を使う方法
const max = Object.values(array).reduce((x,y) => x > y ? x : y);
コメント