Случайный символ в файле .js - PullRequest
2 голосов
/ 02 января 2011

Это символы: "*+-/";

Javascript getElementById

Как мне сделать "randt", чтобы быть 1 случайным символом?

Так что, если я наберу:

document.getElementById("sms-text").innerHTML = "" + random2 + randt;

Это будет для бывших "22*" или "51+"

Как мне это сделать?

Ответы [ 6 ]

2 голосов
/ 02 января 2011
var str = "*+-/";
var random_char = str[Math.floor(Math.random() * str.length)];

Как указывают другие ответы, str.charAt() также будет работать.

2 голосов
/ 02 января 2011

Если я правильно понимаю ваш вопрос, вы возьмете случайное число 0-3, а затем найдите персонажа в этой позиции;

var signs = "*+-/";

var signId = Math.floor(Math.random() * signs.length);

var sign = signs.charAt(signId);
1 голос
/ 02 января 2011

Это в основном тот же вопрос, который вы задавали до , только с той разницей, что вы используете innerHTML вместо document.write.Способ получения строки такой же, так что вы можете просто использовать функцию из моего предыдущего ответа:

function makeid(lastNumber) {
  var possible = "*+-/";
  return lastNumber + possible.charAt(Math.floor(Math.random() * possible.length));
}

Использование:

document.getElementById("sms-text").innerHTML = makeid(random2);
1 голос
/ 02 января 2011

Просто возьмите случайное число от 0 до длины строки и затем обрежьте символ следующим образом:

var chars = "+-/";
var char = chars[Math.floor(Math.random() * chars.length)];

с использованием char будет случайным символом

в качестве альтернативывы можете добавить метод rand к прототипу, например,

String.prototype.randChar = function()
{
    return this[Math.floor(Math.random() * this.length)];
}

, а затем внутри любой созданной строки вы можете использовать, например, так:

char = "+-.".randChar();
1 голос
/ 02 января 2011

Это довольно просто сделать с комбинацией Math.random() и Math.floor():

var chars = "*+-/",
    randt = chars[Math.floor(Math.random() * 4)];

Обратите внимание, что вы можете заменить 4с chars.length, если вы не знаете, сколько символов в chars.

0 голосов
/ 02 января 2011
var randt=['*','+','-','/'][Math.floor(Math.random()*4)];
...