在javascript中生成随机字母并计算每个字母出现的次数?

时间:2013-04-20 17:44:18

标签: javascript html

我想生成一串随机字母,从az开始一个接一个地说10个字母,即下一个字母应该在一定延迟之后显示在前一个字母之后,之后,我想计算每个字母有多少次已经生成,不像我以前做的那样,即我已经采用了预定义的字母数组并相应地生成它们。

3 个答案:

答案 0 :(得分:5)

使用String.fromCharCode生成此类字符串的更短方式:

for (var i = 0, letter; i < 10; i++) {
    setTimeout(function() {
        letter = String.fromCharCode(97 + Math.floor(Math.random() * 26));
        out.appendChild(document.createTextNode(letter)); // append somewhere
    }, 2000 * i);
}

完整的演示文稿涵盖了此问题中的所有问题:http://jsfiddle.net/p8Pjq/

答案 1 :(得分:3)

使用setInterval方法以一定间隔运行代码。设置一个数组从一开始就计算每个字符,然后你可以在创建它们时计算它们而不是之后:

var text = '';
var chars = 'abcdefghijklmnopqrstuvwxyz';
var cnt = new Array(chars.length);
for (var i = 0; i < cnt.length; i++) cnt[i] = 0;

var handle = window.setInterval(function(){
    var ch = Math.floor(Math.random() * chars.length);
    cnt[ch]++;
    text += chars.charAt(ch);
    $('#display').text(text);
    if (text.length == 20) {
      window.clearInterval(handle);
      // now all characrers are created and counted
    }
}, 2000);

演示:http://jsfiddle.net/R8rDH/

答案 2 :(得分:1)

我正在偷这个答案,但请看这里:Generate random string/characters in JavaScript

function makeid()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for( var i=0; i < 5; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}