【问题标题】:How do I pick random characters from a string?如何从字符串中选择随机字符?
【发布时间】:2018-01-09 08:45:54
【问题描述】:

我有一个字符串

var letters="ABCDEFGHIJK";

我如何从中挑选 4 个随机字符。 用 Math.random() 还是别的什么?

输出应该花费这样的东西:

DAKF or FAHG ...

最好的问候

【问题讨论】:

标签: javascript string random


【解决方案1】:

您可以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

【讨论】:

    【解决方案2】:

    我会将您的字母设为数组并使用以下代码:

    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]);
    }
    

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

    【讨论】:

      【解决方案3】:

      如果多个实例是相同的字符是允许的,实现可能是这样的:

      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);
      

      【讨论】:

        猜你喜欢
        • 2014-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        相关资源
        最近更新 更多