【发布时间】:2020-03-09 02:57:18
【问题描述】:
我有一个分配函数,它为您提供一个排序数组,其中包含从 1 到 45 的 6 个随机数。所有数组值都不应该彼此相等。
我想过一个可以在 Java 中运行的解决方案,但我得到的 JavaScript 控制台日志非常混乱。谁能帮帮我?
"use strict";
var numbers = [];
for(var x = 1; x <46;x++){
numbers.push(x);
}
function LottoTipp(){
var result = [];
for(var i = 0; i <6; i++){
var randomNum = Math.round(Math.random()* 45);
var pushed = numbers[randomNum];
result.push(pushed);
numbers.splice(randomNum)
}
return console.log(result) + console.log(numbers);
}
LottoTipp();
控制台日志
[ 34, 7, undefined, undefined, undefined, undefined ]
[ 1, 2, 3, 4, 5, 6 ]
【问题讨论】:
-
你没有正确使用
splice -
另外,既然你把它加回来了,Java有什么关系?
-
你的
splice搞砸了,应该是splice(index, number of delete items) -
只需添加
splice(randomNum, 1)并输出 (6) [33, 7, 25, 24, 26, 28] (39) [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39、40、41、42、43、44、45] -
仍然,您的逻辑不正确,因为随机数最终可能会产生相同的数组。另外,splice 会修改原始数组,所以在开始拼接之前需要复制一份。
标签: javascript