変数が2で割り切れるかどうかを調べる


128

変数が2で割り切れるかどうかはどうすればわかりますか?さらに、ある場合は関数を実行し、そうでない場合は別の関数を実行する必要があります。


6
@SilentGhost:最近、人々は本当にjQueryの宿題を得ていますか?
アンディE

4
アンディについては知りませんが、人々はきっとタグをめちゃくちゃにする方法を知っています。
SilentGhost 2010年

2
@OP:jQueryは、JavaScriptで実行したいすべてのことに対する答えではありません;)
Mike Atlas

8
@マイク間違っています!そのためには、jQuery基本算術プラグインを使用する必要があります。それが行く方法です...:P(アイロニー)
パブロカブレラ

回答:


313

係数を使用:

// Will evaluate to true if the variable is divisible by 2
variable % 2 === 0  

30
大好きです!シンプルで簡単、そしてあなたが私に質問をしている馬鹿のように感じさせなかった...これは(まだ知らない他のすべての人にとって)新しいjQuery / JavaScript開発者にとって大きな問題です。
sadmicrowave 2010年

6
@sadmicrowave:私たちは皆、ある時点で初心者として出発します。本当の問題は、そこに有益なチュートリアルがないことです。絶対初心者向けのチュートリアルでは、JavaScriptとjQueryの違いを明確にする必要があり、jQueryの内容にすぐに飛び込むことができます。
アンディE

3
私が書いた最初のコードはJavaScriptでしたが、これは「ウェルカム」アラートボックスポップアップでした。その年は1997年で、私のGeocitiesホームページ用でした。私たちは間違いなくどこかから始めます(ただし、正式なトレーニングも役立ちます)。
Mike Atlas

すべきではありません:variable%2 == 0私が間違っている場合は教えてください。
Sean Tank Garvey

28

真剣に、奇数/偶数チェック用のjQueryプラグインはありませんか?

まあ、もう-与えられた数が奇数/偶数かどうかをテストするためにMITライセンスの下でjQueryプラグイン「オーブン」をリリースします。

ソースコードはhttp://jsfiddle.net/7HQNG/でも入手できます。

テストスイートはhttp://jsfiddle.net/zeuRV/で入手できます。

(function() {
    /*
     * isEven(n)
     * @args number n
     * @return boolean returns whether the given number is even
     */
    jQuery.isEven = function(number) {
        return number % 2 == 0;
    };

    /* isOdd(n)
     * @args number n
     * @return boolean returns whether the given number is odd
     */
    jQuery.isOdd = function(number) {
        return !jQuery.isEven(number);
    };
})();​

7
ワオ。おかしいですが、誰かが実際にこれを使用することを知っていますか?
Tim Down、

7
@ティムダウン:誰かがそのjQuery基本算術プラグインを使用しているのだろうか?リストの次は、jQuery乱数ジェネレータ;-)
Andy E

9
変数や関数の作成など、jQueryができることはたくさんありますが、それでも未加工のJavaScriptで行われています。信じられないくらいです;-)
Anurag

4
@Andy-そのリンクとSOイメージのROFL-doxdesk.com/img/updates/20091116-so-large.gif「jQueryを使用する」という答えは、今やJavascriptで史上最高に達すると思います:)
アヌラーク

あなたは私にそれを使用して説明するWord文書がありますか?@Anurag
トッド、


11

このようなモジュラス演算子を使用できます。jQueryは必要ありません。をalertsコードに置き換えるだけです。

var x = 2;
if (x % 2 == 0)
{
  alert('even');
}
else
{
  alert('odd')
}

11

あなたはより良い方法でそれを行うことができます(モジュロ演算子より最大50%高速です):

奇数:x&1偶数:!(x&1)

参照:高性能JavaScript、8->ビット演算子


これは素晴らしい、実際には最良の答えです。しかし、それは...ビット演算子の知識を必要とする
ショーンタンクガーベイ


4
var x = 2;
x % 2 ? oddFunction() : evenFunction();

このコードは間違っているか欠陥があると思います。変数xの値を宣言しています(具体的には、xを常に数値2と同等にします)。最初のエラー。次に、次の行は、変数xを2で除算できるかどうかを示し、oddFunctionを実行します。それ以外の場合は、evenFunctionを実行しません... -それは別の問題/エラーです。私が間違っている場合は教えてください。
Sean Tank Garvey


2

お役に立てれば。

let number = 7;

if(number%2 == 0){      

  //do something;
  console.log('number is Even');  

}else{

  //do otherwise;
  console.log('number is Odd');

}

これは、入力のパリティをコンソールに記録する完全な関数です。

const checkNumber = (x) => {
  if(number%2 == 0){      

    //do something;
    console.log('number is Even');  

  }else{

    //do otherwise;
    console.log('number is Odd');

  }
}

1

コンソールで次のコードを記述してください:

var isEven = function(deep) {

  if (deep % 2 === 0) {
        return true;  
    }
    else {
        return false;    
    }
};
isEven(44);

注:入力された数値がfalseの場合でもtrueを返します。


1
答えに感謝しますが、これは基本的に受け入れられた答えと同じです。あなたはそれを関数にラップしました。とにかく、貢献してくれてありがとう
sadmicrowave 2017年

1

Modulusを使用しますが、..上記の受け入れられた答えは少し不正確です。次のように、xはJavaScriptの数値型であるため、演算子はトリプル割り当てではなくダブル割り当てである必要があると思います。

x % 2 == 0

変数も宣言することを忘れないでください。そのため、その行をスタンドアロンで書くことができませんでした。:-)通常はifステートメントとして使用されます。お役に立てれば。


-2

配列= [1、2、3、4、5、6、7、8、9、10]

array.each {| x | x%2 == 0の場合、xを入れます}

ルビー:D

2 4 6 8 10


1
あなたは4chanからさまよっていますか?
トッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.