在javascript中创建一串数字,每个数字都有限制

Creating a string of digits in javascript each within a limit

本文关键字:数字 有限制 一串 javascript 创建      更新时间:2023-09-26

我如何使用javascript随机创建一个20位数字字符串,每个数字的范围仅在1和5之间?

例如:52431425331425141521

除了我在上面的评论中给出的逻辑算法之外,您还可以使用下面的一行代码:

var result = Math.floor(Math.random()*95367431640625).toString(5)
                            .split("").map(function(n) {return +n+1;}).join("");

本质上,在0到5之间随机选择一个整数20-1,将其转换为基数5,然后将所有数字加1,因此它们都在1到5之间^_^

编辑:刚刚意识到这不会处理低数字太好。试试这个:

var result = (
         new Array(20).join("0")
         +
         Math.floor(Math.random()*95367431640625).toString(5)
     ).slice(-20).split("").map(function(n) {return +n+1;}).join(""));

这基本上是相同的,除了它在你的数字前面加上19个零,然后切掉最后20个字符。这将允许它正确处理前导零,在所有情况下给出一个20位数字。

你可以这样做:

function random_string()
    {
        var text = "";
        var string = "12345";
        for( var i=0; i < 20; i++ )
            text += string.charAt(Math.floor(Math.random() * string.length));
        return text;
    }
    random_string();