如何从javascript中的数组中随机选择多个项目

时间:2015-10-31 15:08:24

标签: javascript arrays random

我有一个包含字母表中所有字母加上句号和空格的数组。我想要做的是随机选择大量的这些字母(如果同一个字母被多次选中并不重要)并在屏幕上打印它们。我到目前为止的是:

var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ".", " "];

for (var i = 0; i <= 10; i++) {
    var random_letter = Math.floor(Math.random() * 28);
    var result = [];
    result[i] = [letters[random_letter]];
    document.write(result);
}   

但是,当我在Firefox中运行脚本时,我得到了这个输出:

X,C,,N,,,A,,,,T,,,,,.,,,,,,N,,,,,,,T,,,,,,,,G,,,,,,,,,O,,,,,,,,,,G 

其中正确包含10个字母和一个空格。但它也包含所有这些逗号!哪些不属于我的阵列。为什么会发生这件事?难道我做错了什么?任何帮助将非常感激。亚历

1 个答案:

答案 0 :(得分:0)

每次迭代循环时,您都在重新声明salary.getSalary() >= 40000。如果你在外面声明它应该解决问题

result

https://jsfiddle.net/77vtxxjh/

编辑

此外,您的代码声明了一个数组数组而不是一个字符数组。这是导致所有逗号打印的原因。如果这是你实际上你可以修改我的代码之后的事实:

var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L","M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ".", " "]; 

var random = [];

for (var i=0; i < 50; i++)
{
    var index = Math.floor(Math.random() * 28);
    random.push(letters[index]);
}
console.log(random);

这是小提琴:https://jsfiddle.net/s26tvtLx/1/