【发布时间】:2018-01-09 08:45:54
【问题描述】:
我有一个字符串
var letters="ABCDEFGHIJK";
我如何从中挑选 4 个随机字符。 用 Math.random() 还是别的什么?
输出应该花费这样的东西:
DAKF or FAHG ...
最好的问候
【问题讨论】:
-
你可以随机选择前4名
标签: javascript string random
我有一个字符串
var letters="ABCDEFGHIJK";
我如何从中挑选 4 个随机字符。 用 Math.random() 还是别的什么?
输出应该花费这样的东西:
DAKF or FAHG ...
最好的问候
【问题讨论】:
标签: javascript string random
您可以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
【讨论】:
我会将您的字母设为数组并使用以下代码:
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]);
}
如果您希望字母显示在彼此后面,请创建一个新变量,并在每次循环时连接新变量中的字母。
【讨论】:
如果多个实例是相同的字符是允许的,实现可能是这样的:
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);
【讨论】: