【JavaScript】最大取りたい気持ちだけならループいらないよ【Math.max/Math.min】

【JavaScript】最大取りたい気持ちだけならループいらないよ【Math.max/Math.min】

はじめに

コジマです。

こないだ、配列の最大値を取りたいがためにループで書かれてるソース見て
ちょっと勘弁してよ~ってなったのでこの記事を書いてます。

Math.maxを使えば一発で出せます。

const array1 = [5, 3, 2, 6, 4, 9, 1]

/* ループで最大を出す */
let maxNum = 0
for(const e of array1){
    if(maxNum < e){
        maxNum = e
    }
}
console.log(maxNum) // 9がほしい

/* Math.maxを使う方法 */
console.log(Math.max(...array1)) // 9がほしい

出力はどちらも9となり、挙動としては正しいですが、
Math.max使えば一発です。

どちらが可読性高いとか一目瞭然ですよね。

Math.maxの使い方

Math.maxは与えられた引数の中で最も大きな値を返却します。

console.log(Math.max(1, 2, 3))とすれば3が返ります。

console.log(Math.max(…array1))のように配列の前に「…」をつけると、
配列の各要素を引数として扱ってくれるので覚えておくと便利です。

逆に、最小が欲しいときはMath.minが使えます。

const array1 = [5, 3, 2, 6, 4, 9, 1]

/* ループで最小を出す */
let minNum = 0
let cnt = 0
for(const e of array1){
    if(cnt === 0){
      minNum = e
    }
    if(minNum > e){
        minNum = e
    }
    cnt++
}
console.log(minNum) // 1がほしい

/* Math.minを使う方法 */
console.log(Math.min(...array1)) // 1がほしい

さいごに

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

システムエンジニアのつらい部分のあるあるなんかをエンタメにしたチャンネルを作りました。
チャンネルはこちら
つらい部分も楽しくなればと思っているのでよかったらチャンネル登録や高評価してくれたらうれしいです。

以上、コジマでした。


JavaScriptカテゴリの最新記事