2015-10-06 3 views
0

Не могли бы вы дать мне знать, как я могу создавать случайные 1 или 3 (не диапазон, только 1 или 3) при каждой загрузке документа? Я уже пробовал это, но он возвращает строку вместо чисел. Должен ли я разобрать их на цифры или есть лучший способ сделать это?Получите случайное значение Либо 1 или 3 в JavaScript

var num = []; 
var chances = "13"; 
for (var i = 0; i <1; i++) { 
    num.push(chances.charAt(Math.floor(Math.random() * chances.length))); 
} 

console.log(num); 
+0

Какова конечная цель с кодом выше в целом? Я определил пару проблем с кодом, но если бы я знал, что вы на самом деле хотите, чтобы код работал, я, вероятно, мог бы быть более полезным. –

+1

, если числа, которые вы хотите иметь, уже находятся в строке, 'var num = + chance [Math.floor (Math.random() * chances.length)]' – Kaiido

ответ

9

С Math.random возвращает число между 0 (включительно) и 1 (эксклюзив):

var value = Math.random() < 0.5 ? 1 : 3; 

Тем не менее, обратите внимание, что ваша chances строка не имеет символ с индексом 3, это только два символа, а их индексы равны 0 и 1. Поэтому, если вы действительно хотите случайно выбрать из этих двух символов, как ваш код, кажется, предлагает, что вы действительно хотите:

var value = Math.random() < 0.5 ? 0 : 1; 

или

var value = Math.floor(Math.random() * 2); 

... хотя ваш код с помощью chances.length просто отлично (с chances.length является 2).

Также обратите внимание, что for (var i = 0; i < 1; i++) будет выполнять только один раз, делая петлю несколько бессмысленной. :-)

+0

спасибо T.J. Crowder, но я получаю '0' или' 1' сейчас! – Behseini

+0

что мне нужно - '1' или' 3' – Behseini

+0

@Behseini, используйте 'value' как индекс вашей ** строки ** или' array', если ввод похож на '[1,3]' – Rayon

Смежные вопросы