如何在一个html输入中生成两组随机数?

时间:2018-04-23 10:10:26

标签: javascript html

如何在一个js函数中执行两个函数,可以在一个html输入中放入两组随机数?我想创建一个单击生成两组随机数的函数。

从1-50生成5个数字,然后从1-10生成2个数字。一行中有两组数字。

此代码无效:



function eurojackpot() {
  let result = new Set();
  while (result.size != 5) {
    result.add(Math.floor(Math.random() * 50) + 1);
  }
  document.getElementById("eurojackpot").innerText = [...result];
  let result = new Set();
  while (result.size != 2) {
    result.add(Math.floor(Math.random() * 10) + 1);
    document.getElementById("eurojackpot2").innerText = [...result];
  }
}

eurojackpot();

<div id="eurojackpot"></div>

<div id="eurojackpot2"></div>
&#13;
&#13;
&#13;

我想要实现的目标:

exp - [2,5,15,23,49] + [1,10]

3 个答案:

答案 0 :(得分:1)

当您删除第二个“let”结果“:

时,代码有效
function eurojackpot() {
    let result = new Set();
    while(result.size != 5){
        result.add(Math.floor(Math.random()*50)+1);
    }
    document.getElementById("eurojackpot").innerText = [...result];
    result = new Set();
    while(result.size != 2){
        result.add(Math.floor(Math.random()*10)+1);
    }
    document.getElementById("eurojackpot2").innerText = [...result];
}

这是一个重现它的JSFiddle:

https://jsfiddle.net/42bkucjy/

答案 1 :(得分:0)

检查以下代码段, 在这里,您可以指定最小值和最大值(您希望随机数应存在的范围)作为第一个和第二个参数以及随机元素的总数(在您的情况下,第一个中的5个数字和第二个中的2个数字)作为第三个参数randomWholeNum函数。

点击按钮会产生随机数。现在根据您的需要设计样式。

&#13;
&#13;
var Result =
    from t1 in table1
    from t2 in table2
    from t3 in table3.Select(f => f.SchemeId).Distinct()
    where (t1.ISIN == t2.ISIN_GrowthDiv || t1.ISIN == t2.ISIN_DivReinv) & t3 == t2.SchemeID
    select new { t1.ISIN, t2.ISIN_DivReinv, t2.SchemeID };
&#13;
function randomWholeNum(min, max, total) {
  var arr = []
  while(arr.length < total){
    var randomnumber = Math.floor(Math.random() * (max - min + 1)) + min;
      if(arr.indexOf(randomnumber) > -1) continue;
      arr[arr.length] = randomnumber;
  }
  return arr;
}



$(".generate").click(function(e){
  var rand_no1 = randomWholeNum(1, 50, 5);
  var rand_no2 = randomWholeNum(1, 10, 2);
  
  document.getElementById("eurojackpot").innerText = rand_no1;
  
  document.getElementById("eurojackpot2").innerText = rand_no2;
});
&#13;
&#13;
&#13;

答案 2 :(得分:0)

以下内容可能适合您:

const pickRandom = (min,max)=>
  Math.floor(Math.random()*max)+min;

const pickFrom = array =>
  array[pickRandom(0,array.length-1)];

const pick = (array,amount) => {
  const recur = (numbers,array) => {
    if(numbers.length>=amount){
      return [numbers,array];
    }
    const picked = pickFrom(array);
    return recur(
      numbers.concat(picked),
      array.filter(item=>item!==picked)
    );
  }
  return recur([],array);
}

document.querySelector("button").addEventListener(
  "click",
  ()=>{
    const [jack1] = pick(
      Array.from(new Array(50),
      (x,index)=>index+1),5
    );
    const [jack2] = pick(
      Array.from(new Array(10),
      (x,index)=>index+1),2
    );
    document.querySelector("#eurojackpot").value=jack1.join(",");
    document.querySelector("#eurojackpot2").value=jack2.join(",");
  }
);
<input type="text" id="eurojackpot">
<input type="text" id="eurojackpot2">
<button>make numbers</button>