MENU

JavaScriptサンプルコード

【JavaScript】 偶数奇数を判定する

更新日:2021/05/10

 

 

JavaScriptで偶数奇数判定をおこなおうとしたら、組み込み関数が存在していませんでした。

 

そこで独自に偶数奇数判定をおこなう関数を作成してみます。

 

偶数か奇数かを判定する関数

 

数値を2で割り余りが0なら偶数、1なら奇数になります。

 

この特徴から判定関数を作成してみます。

 

偶数かどうか判定する関数

 

数値が偶数かどうかを判定するisEven関数です。
偶数ならtrue、奇数や数値以外の値はfalseが返ります。

 

isEven関数

 


const isEven = num =>
                (typeof num === "number" || num instanceof Number )
                    && num % 2 === 0;

 

使用例とテスト結果

 


for (let i = 0 ; i < 12 ; i ++)
        console.log( i + ":" + isEven( i ) );

0:true
1:false
2:true
3:false
4:true
5:false
6:true
7:false
8:true
9:false
10:true
11:false

 

関連記事:
【JavaScript】 商と剰余(割り算の余り)を求める方法

 

奇数かどうか判定する関数

 

数値が偶数かどうかを判定するisOdd関数です。
奇数ならtrue、偶数や数値以外の値はfalseが返ります。

 

isOdd関数

 


const isOdd = num =>
            (typeof num === "number" || num instanceof Number ) &&
            num % 2 === 1;

 

使用例とテスト結果

 


for (let i = 0 ; i < 12 ; i ++)
        console.log( i + ":" + isOdd( i ) );

0:false
1:true
2:false
3:true
4:false
5:true
6:false
7:true
8:false
9:true
10:false
11:true

数値文字列にも対応させる

 

ブラウザでユーザーが入力した文字列や、Ajaxなどでサーバーから取得した文字列に対して偶数奇数判定したいケースがあります。

 

基本的には、偶数奇数判定するまえに数値判定をするべきですが、ここでは同時に判定をおこないます。

 

偶数奇数判定・数値文字列対応

 


const isEven = num =>
                (typeof num === "number" || num instanceof Number
                    || ( (typeof num === "string" || num instanceof String) && !isNaN(num)) )
                     && num % 2 === 0;

const isOdd = num =>
            (typeof num === "number" || num instanceof Number
                || ( (typeof num === "string" || num instanceof String) && !isNaN(num)) )
            && num % 2 === 1;

 

余りの計算は、文字列にも適用されます。

 

そのため各関数とも、値が文字列かどうかと、値が数値と判定されるかどうかのチェックを追加して、問題なければそのまま余り判定をおこなっています。

 

 

配列から偶数または奇数インデックスを抜き出す

 

偶数奇数判定の応用例として、配列の偶数インデックスを抜き出し、新しく配列を作成してみます。

 

偶数インデックスのみ抜き出す関数

 


const oddArray = array => array.filter( ( e , index ) => isOdd( index) );

 

Arrayオブジェクトのfilterメソッドは、条件に一致する要素で新しく配列を作成します。
filterメソッドのコールバック関数は2番目の引数でインデックスを受け取るので、そのインデックスに対して偶数判定をおこないます。

 

使用例とテスト結果

 

const array = [  { val : 99 } , { val : 100 } , { val : 101 } , { val : 102 } , { val : 103 } ];

console.log( oddArray( array ) );

Array [
    0: Object { val: 100 }
​    1: Object { val: 102 }
    length: 2
]

 

けーちゃんおススメJavaScript入門書

  • スラスラ読める JavaScript ふりがなプログラミング
  • プログラム未経験者がJavaScript始めるならコレ!
    コードを掲載して自分で理解しろという投げっぱなしな入門書とは異なり、コードに一つ一つどんなことをやっているかをふりがなという形式で解説しています。
    それでいてJavaScriptの基礎と応用を学べる良書です。
  • これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん
  • JavaScriptの機能を実践で活かすにはHTMLやCSSの知識が不可欠です。
    しかしそれらの知識があることが前提として書かれている書籍が多い中、この本は総合的な知識を身に着けることができます。
    HTMLやCSSの知識も不安な方には、ぴったりの一冊です
  •  

    入門書の役割は、自分のやりたいことをネットで調べることができるようになるための、基礎的な知識の獲得です。
    まずはこれらの本でしっかりと基礎知識を身につけましょう。
    そしてもっと高度なことや専門的なことはネットで調べ、情報が足りないと感じたら書籍を購入してください。


    期間限定情報:
    6/21と6/22は年に一度のプライム会員大感謝祭!
    欲しかったアレが安く手に入るチャンスです
    忘れずにチェックしてください!
    僕は以前のタイムセール祭りで4Kモニタが買ったけど、それより安かったらどうしよう・・・

    ちなみにプライム会員でなくても、無料体験で参加できるようです。
    欲しい商品があるか、確認だけでもしておきましょう。

    記事の内容について

     

    こんにちはけーちゃんです。
    説明するのって難しいですね。


    「なんか言ってることおかしくない?」
    たぶん、こんなご意見あると思います。

    裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。

    そんなときは、ご意見もらえたら嬉しいです。

    ご意見はこちら。
    https://note.affi-sapo-sv.com/info.php

    【お願い】

    お願い

    ■このページのURL


    ■このページのタイトル


    ■リンクタグ


    ※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
    サイト上部の問い合わせよりご連絡ください。
    ただしサイトのジャンルによっては、お断りさせていただくことがあります。