从数组中选择5个随机字母

时间:2018-11-04 14:42:22

标签: javascript

对于学校,我需要制作一个脚本,该脚本可以打印5次随机字母3次的东西。 “ ajshw kcmal idksj”

我做到了:

var myArray = ['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 = myArray[Math.floor(Math.random() * myArray.length)];
document.write('<br>' +  random);

但这仅打印一个字母。如何打印5个字母3次?

3 个答案:

答案 0 :(得分:0)

一种简单的方法是使用循环简单地多次生成单个字母。一种方法如下:

var myArray = ['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 phrase = "";
for (var x = 0; x < 3; x++) {
    for (var y = 0; y < 5; y++) {
        phrase = phrase + myArray[Math.floor(Math.random() * myArray.length)];
    }
    phrase = phrase + " ";
}
console.log(phrase)

答案 1 :(得分:0)

那只做一个嵌套循环呢?

const myArray = ['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'
];

const length = myArray.length;

const numStrings = 3;
const numLetters = 5;

for (let i = 0; i < numStrings; i++) {
  let string = "";

  for (let j = 0; j < numLetters; j++) {
    let letter = myArray[Math.floor(Math.random() * length)];
    string += letter;
  }
  console.log(string);
}

答案 2 :(得分:0)

重复5次以生成具有5个字母的每个单词,然后重复3次以生成3个单词。您可以使用for循环来生成单词,也可以使用array#map来生成单词,然后使用array#join可以将它们加入。

var myArray = ['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'],
    random = [...Array(3)]
      .map(_ => [...Array(5)].map(_ => myArray[Math.floor(Math.random() * myArray.length)]).join(''))
      .join('<br>');
document.write(random);