如何创建100个1到9999之间的4位数的随机数,并将数字放在10行10个数字中?

时间:2016-11-09 18:52:37

标签: javascript for-loop return

有一个问题,弄清楚如何解决这个问题,我已经搜索并寻找答案,但它们并不像我正在寻找的那样。 这是初学者的东西,我意识到,但任何帮助将受到高度赞赏。

以下代码由我的老师提供,适用于创建 一个 随机数。对于我的生活,我无法弄清楚如何创建100个随机数并制作10 x 10平方的数字。

eg. 5468 2367 1587 2587 2310 9802 0154 8753 4965 2571
    3249 3248 2158 4659 1321 1278 9871 0123 4654 4587
    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();

我也知道if(j%nameofvar == 0){用于制作新行,但我无法做到这一点。

3 个答案:

答案 0 :(得分:0)

最基本的方式:

&#13;
&#13;
      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 />");
&#13;
<div id = "answer"></div>
&#13;
&#13;
&#13;

使用数组更有效,但您也可以简单地连接数组。

答案 1 :(得分: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/

答案 2 :(得分: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>