javascript - javascript - 如何获取for循环创建一个9个随机1digit数字的字符串?

109 5

我需要创建一个随机数生成器,其中9位总数由通过for循环生成的随机1位数字创建。

这个工作,但我需要使用for循环:


 var random1 = Math.floor(Math.random() * 9) + 1 ;


 var random2 = Math.floor(Math.random() * 9) + 1 ;


 var random3 = Math.floor(Math.random() * 9) + 1 ;


 var random4 = Math.floor(Math.random() * 9) + 1 ;


 var random5 = Math.floor(Math.random() * 9) + 1 ;


 var random6 = Math.floor(Math.random() * 9) + 1 ;


 var random7 = Math.floor(Math.random() * 9) + 1 ;


 var random8 = Math.floor(Math.random() * 9) + 1 ;


 var random9 = Math.floor(Math.random() * 9) + 1 ;



//... and then dump the random number into our random-number div.


 $("#random-number").text(""+ random1 + random2 + random3 + random4 + random5 + random6 + random7 + random8 + random9);



 var results =""+ random1 + random2 + random3 + random4 + random5 + random6 + random7 + random8 + random9 ;


 $("#results").prepend(results +" <br>");



上面的代码可以创建一个随机的9位数字,但我需要使用for循环来使我的代码简洁。

时间:

113 1

你可以使用 for 循环。 创建一个字符串,在每个循环中集中这个字符串的新随机数。


let random = '';


for(let i =0;i<9;i++){


 random += Math.floor(Math.random() * 9) + 1 ;


}


$("#random-number").text(random);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div id="random-number"></div>

另一种方法是使用 map()join()


let random = [...Array(9)].map(x => Math.floor(Math.random() * 9) + 1).join('')


$("#random-number").text(random);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div id="random-number"></div>
原作者:
103 3

你可以尝试这种方式,所有数字都在范围 [0, 9 ] 中,你应该将第一个数字为零:


var digits = [];


for (let i=0; i<9; i++) {


 let n = Math.floor(Math.random()*10);


 digits.push( n );


}


var number = digits.join('')



103 1

构造一个新的array,其中项是随机数,然后用空字符串连接 array 。


const random = length => Array.from(Array(length), _ => Math.floor(Math.random() * 9) + 1).join('');



console.log(random(9));


console.log(random(9));


console.log(random(9));


console.log(random(9));


console.log(random(9));
100 0

如果要使所有的9 号都是唯一的,可以使用对象跟踪添加的以前添加的数字和对象。


let random = '';


let included = {}


for(let i =0;i<9;i++){


 let temp = true


 while(temp){


 let num = Math.floor(Math.random() * 9) + 1 ;


 if(included[num] === undefined){


 temp = false


 random += num


 included[num] = num


 }


 }


}


$("#random-number").text(random);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div id="random-number"></div>
原作者:
...