2012-03-29 7 views
-3
var x = 1 + Math.Random() % 9; 
if (x==1) 
    // do something 
else if (x==2) 
    // do something else 

Iは1から9までの番号を取得するためにC++でこのライン— (1 + Math.Random() % 9) —を使用しますが、JavaScriptで私は別の結果を取得しています。Javascriptでランダム関数を使用しようとしていますか?

+2

これはjqueryではありません。 – jrummell

+0

'Math.random'は' Math.Random'ではありません(小文字の 'r'に注意してください)。 –

答えて

3

Math.random()は、01の間の値を返します。したがって、モジュロ演算子を使用する代わりに、乗算を使用する必要があります。

1 + (Math.random() * 9); 

最後に、あなたはこれがあなたに結果を与える

var x = ~~(1 + (Math.random() * 9)); 
+0

ランダムで最初の例では大文字を使用していますが、小文字の;-)を使用しています。 –

+0

@SimonEdström:ありがとう、決してコピー&ペーストしないでください。 – jAndy

0

短い

var x = Math.floor(1 + (Math.random() * 9)); 

かを、その値を丸めるか.floor()すべき

Math.floor(Math.random()*9) 

0〜9そして、jQueryはJavaScriptフレームワーク。数学はネイティブのJavaScript関数です

1

JavaScriptにはMath.Random()という関数はありません。それはMath.random()です。大文字に注意してください。

これを行う、特定の最小値と最大値の間の乱数を取得する:

var min = 1, max = 9; 
Math.floor(Math.random() * (max - min + 1)) + min; 

さらにリーディング:JavaScriptでhttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

+0

私はそれを取得しません。なぜdownvote? – FishBasketGordo

1

Math.random関数は0と1の間の数を返します。 1から9までの数値を取得したい場合は、少し作業をしなければなりません。

var number = ((Math.random() * 10) | 0) % 9 + 1 
関連する問題