【问题标题】:Building a simple randomizer which includes a dot, an underscore, the letter A and the letter B构建一个简单的随机化器,其中包括一个点、一个下划线、字母 A 和字母 B
【发布时间】:2012-06-20 14:34:36
【问题描述】:

基本上,我想构建一个随机生成器,它可以产生具有以下可能组合的输出:

.
. .
. . .
_
_ _
_ _ _
. _
_ .
. . _
_ . .
. _ _
_ _ .
_ . _
. _ .

最后,在开头随机添加字母 A 和 B。

例如:

A . _
B _ _
A . . _
A _ .
B . _ _
A .

etc.

关于如何使用 JavaScript 完成此任务的任何想法?

【问题讨论】:

  • 您不需要 jQuery 来执行此操作。纯 JavaScript 就可以完成这项工作。
  • @Diodeus 哦,是的,我认为你是对的。我修改了问题。
  • 是:将序列放入数组并使用Math.random 和数组的.length 来检索它。以相同的方式或简单的? 执行“A”/“B”。这真的有点太基本了。

标签: javascript random


【解决方案1】:

这是另一种方式:http://jsfiddle.net/8AHaw/

function makeid() {
    var text = "";
    var possibleChars = "._";
    var possibleLetters = "AB";

    text += possibleLetters.charAt(Math.floor(Math.random() * possibleLetters.length));
    for( var i=0; i < Math.floor(Math.random() * 3)+1; i++ )
        text += " " + possibleChars.charAt(Math.floor(Math.random() * possibleChars.length));

    return text;
}

for (var i=0; i < 20; i++)
    $("body").append("<div>" + makeid() + "</div>");

改编自Generate random string/characters in JavaScript

【讨论】:

  • 对不起,最后一件事;如何在每个字符之间添加空格,就像上面的示例一样?
  • @alexchenco 在possibleChars.charAt( jsfiddle.net/8AHaw/1之前添加" " +
【解决方案2】:
var a = [
    ".",
    ". .",
    ". . .",
    "_",
    "_ _",
    "_ _ _",
    ". _",
    "_ .",
    ". . _",
    "_ . .",
    ". _ _",
    "_ _ .",
    "_ . _",
    ". _ ."
    ],

    b = ["A ", "B "];



    function getRandom() {
        return b[Math.random()*b.length|0] + a[Math.random()*a.length|0];
    }

    getRandom(); //"A ."
    getRandom(); //"A _ _ _"
    getRandom(); //"B . _ _"

有一个循环:

var l = 20;
while(l--) console.log( getRandom() );

【讨论】:

  • 非常感谢!我想最好的办法是创建一个循环,以便结果可以一直持续到某个数字。
  • @alexchenco 我添加了一个循环
  • 非常感谢!不确定选择哪个答案。我想我会等到人们投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 2013-03-25
相关资源
最近更新 更多