如何从字符串中选择随机字符?

时间:2018-01-09 08:45:54

标签: javascript string random

我有一个字符串

var letters="ABCDEFGHIJK";

我如何从中挑选4个随机字符。 使用Math.random()或其他东西?

输出应该花费类似的东西:

DAKF or FAHG ...

祝你好运

3 个答案:

答案 0 :(得分:0)

您可以shuffle并选择前4名(或最后4位)字符



var shuffled = (str) => str.split('').sort(function() {
  return 0.5 - Math.random();
}).join('');
var letters = "ABCDEFGHIJK";

console.log(shuffled(letters).slice(-4)); //last 4

console.log(shuffled(letters).slice(-4));  //last 4
 
console.log(shuffled(letters).substring(0,4));  //top 4




答案 1 :(得分:0)

如果允许多个实例使用相同的字符,则实现可能如下所示:

var letters="ABCDEFGHIJK";
var arr=letters.split("");
var str="";
var num=0;
while(num<4){
    str+=arr[Math.floor(Math.random()*10)];
    num++;
}
console.log(str);

如果您想要Math.random中的唯一字母:

var letters="ABCDEFGHIJK";
var arr=letters.split("");
var str="";
var num=0;
while(num<4){
var char=arr[Math.floor(Math.random()*10)];
 if(str.includes(char)){
   continue;
 }
 else{
   str+=char;
   num++;
 }
}
console.log(str);

答案 2 :(得分:0)

我会将你的字母变成一个数组并使用以下代码:

var letters=["A","B","C","D","E","F","G","H","I","J","K"];

for (i = 0; i < 4; i++){
var number = Math.floor((Math.random() * 10));
console.log(letters[number]);
}

如果你希望彼此后面显示的字母创建一个新变量,并在每次循环时连接新变量中的字母。