2016-11-09 45 views
0

有一個問題想辦法解決這個問題,我搜索並尋找答案,但它們並不像我要找的東西。 這是初學者的東西,我意識到,但任何幫助將不勝感激。如何用4位數字在1和9999之間創建100個隨機數字,並將數字放在10行中的10個數字中?

下面的代碼是我的老師給出的,它適用於創建一個隨機數。對於我的生活,我無法弄清楚如何使這個創建100個隨機數字,並使其10 x 10平方。

eg. 5468 2367 1587 2587 2310 9802 0154 8753 4965 2571 
    3249 3248 2158 4659 1321 1278 9871
    etc. for 10 rows. 

<div id="answer"></div> 

<script type="text/javascript"> 
function giveValues() { 
var length, zeroes; 
var number = Math.round((Math.random() * 9999)); 

// toString()-method and lenght to set amount of digts 
zeroes = 4 - number.toString().length; 

for (var j = 1; j <= zeroes; j++) { 
number = "0" + number; 
} 
return number; 
} 
document.getElementById("answer").innerHTML = giveValues(); 

我也知道,如果(j%nameofvar == 0){創建一個新行,但我無法做到這一點。

+0

當你說10x10平方米的時候,你是指在第一行顯示它們作爲你的例子嗎?或者在一個數組中? – zee

+0

是的,顯示如示例。我還沒有用過數組。 – ikarutsi

回答

0

考慮到你還沒有學會陣列還沒有,請嘗試以下操作,因爲我認爲這是最好的在線與你在找什麼。這裏還有一個Plunker http://plnkr.co/edit/LltYPtSfR9Ndo46kYmVN?p=preview

<div id="answer"></div> 

<script> 
    function giveValues() { 
    var length, zeroes; 
    var number = Math.round((Math.random() * 9999)); 

    // toString()-method and lenght to set amount of digts 
    zeroes = 4 - number.toString().length; 

    for (var j = 1; j <= zeroes; j++) { 
     number = "0" + number; 
    } 
    return number; 
    } 

    var columns = 10; 
    var total = 100; 
    var bigString = ""; 

    for (var i=0; i<total; i++) { 
    if (i != 0 && i % columns == 0) { 
     bigString += "<br/>"; 
    } 
    bigString += giveValues(i).toString() + " "; 
    } 

    var answer = document.getElementById("answer"); 
    answer.innerHTML = bigString; 
</script> 
+0

這看起來像我理解並遵循給定的代碼。乾杯。 – ikarutsi

+0

太好了,很高興幫助。請對答案投票並按答案左側的複選標記。 – zee

0

最基本的方法:

 function lpad(number) { 
 
    while (number.toString().length < 4) { 
 
     number = "0"+number; 
 
    } 
 

 
    return number; 
 
} 
 

 
var max = 9999; 
 

 
var matrix = []; 
 
var size = 10; 
 

 
for (var i = 0; i < size * size; i++) { 
 
    if (i % size === 0) { 
 
     matrix.push([]); 
 
    } 
 
    var number = lpad(Math.ceil(Math.random() * max)); 
 
    matrix[matrix.length - 1].push(number); 
 
} 
 

 
document.getElementById("answer").innerHTML = matrix.join("<br />");
<div id = "answer"></div>

使用數組是更有效的,但你也可以簡單地串聯了。

+0

老師顯示的方法是否過於複雜?我認爲這個關鍵部分是返回的值必須是4位數字。在你的答案中有47個數字,應該是0047.我相信這是toString部分的要點。 – ikarutsi

+0

首先錯過了填充。添加它。 –

0

您可以生成一個大的隨機數,然後將其限制爲4位數。

試試這個:

function giveValues() { 
    var number = Math.round((Math.random() * 999999999)); 
    return number.toString().substr(0, 4); 
} 
var arr = []; 

for(var i = 0; i < 10; i++){ 
    arr.push([giveValues(), giveValues(), giveValues(), giveValues(), giveValues(), giveValues(), giveValues(), giveValues(), giveValues(), giveValues()]); 
} 

document.getElementById("answer").innerHTML = arr.join(' <br/>').replace(/,/g,' '); 

https://jsfiddle.net/moshekarmel1/34spm4hh/

相關問題