【发布时间】:2017-07-26 15:10:50
【问题描述】:
我遇到了为彩票构建随机数生成器的挑战。
6 个数字,在 1 到 49 之间,按升序排列,没有一个看起来是两次。第一个7号,超7号,未排序,不能是前面的数字之一。
<script type="text/javascript">
const numb = new Array();
for (var i = 0; i < 6; i++) {
numb[i] = Math.floor(49 * Math.random()) + 1;
//compare to existing numbs
for (var k = 0; k < numb.length - 1; k++) {
if (numb[i] == numb[k]) {
i--;
break;
}
}
}
let supNumb = new Array();
supNumb = Math.floor(49 * Math.random()) + 1;
for (var s = 0; s <= 1; s++) {
// compare supNumb to numb
for (var t = 0; t < numb.length - 1; t++) {
if (supNumb == numb[t]) {
s--;
break;
}
}
}
// SORT & DISPLAY NUMBERS
function sort(a, b) {
return a - b;
}
numb.sort(sort);
document.write("<p> " + numb);
document.write("<h4>" + "SuperSeven: " + supNumb);
</script>
我知道通过尝试超七 supNumb 仍然给出与 numb 相同的数字。
我无法让它工作,也找不到提到的任何地方。
这里有人可以查看它并告诉我如何比较 supNumb 和 numb?
这甚至是正确的结构吗?
提前致谢!
【问题讨论】:
-
尽量保持一致。如果你使用
const,也可以使用其余的 ES6 特性(let、箭头函数等)。
标签: javascript arrays for-loop random constants