如何在Javascript中生成5个不同的数字

时间:2017-12-25 20:20:45

标签: javascript jquery random

我有一个click功能,所以当我点击一个按钮时,它应该在表格中放入5个不同的数字。这里的问题是五个数字并不总是不同。

$("button").click(function () {
$("table:eq(2)").show();
y = 0;
while (y < 5) {
    x = Math.floor((Math.random() * 50) + 1);
    klo = 0;
    kolonija[y] = x;
    if (tru==1)
    {

        while(klo<5){

            while(kolonija[y]==rezerva[klo])
            {
                x = Math.floor((Math.random() * 50) + 1);
                kolonija[y] = x;
            }


            klo++
        }
        rezerva[klo] = x;
    }
    else if (tru == 0)
    {
        rezerva[y] = x;
        tru == 1;
    }


    $("table:eq(2) td:eq(" + y + ")").text(x);


    y++;
}
});

这是我输入随机数的表格:

<button>IGRAJ</button>

<table border="1" class="rez">
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>

</table>


<script src="skripta.js"></script>

2 个答案:

答案 0 :(得分:2)

只需将随机数推入array,直到array中至少包含五个项目。

arr = [];
while (arr.length < 5) {
  x = Math.floor(1 + Math.random() * 50);
  // Check if the number is already in the array.
  if (arr.indexOf(x) === -1) {
    arr.push(x);
  }
}
// "arr" now contains five random and unique numbers.
console.log(arr);

答案 1 :(得分:2)

使用Set并添加它直到它被填充

function generateRandomNumbers(nrOfItems) {
  let s = new Set();
  while (s.size < nrOfItems) s.add(Math.floor((Math.random() * 50) + 1));
  return [...s];
}

console.log(generateRandomNumbers(5))

将数字放在表格中,你可以

function generateRandomNumbers(nrOfItems) {
  let set = new Set();
  while (set.size < nrOfItems) set.add(Math.floor((Math.random() * 50) + 1));
  return [...set];
}

let tbl = document.getElementById('tbl');
let btn = document.getElementById('btn');
btn.addEventListener('click', () => {
  let row = document.createElement('tr');
  generateRandomNumbers(5).forEach(nr => {
    let t = document.createElement('td');
    t.appendChild(document.createTextNode(nr));
    row.appendChild(t);
  });
  tbl.appendChild(row);
});
<button id="btn">IGRAJ</button>
<table id="tbl"></table>