我知道有很多类似的问题,我经历了大部分问题。与我想要达到的最接近的代码是this one。 我在每列中都有一个人员列表(代表一天)。为了这个问题,我们假设每列中有8个人。我需要随机选择5个独特的人名。我已经使用splice()从数组中删除所选项目,以确保它没有被选中两次。我是编码的新手,我认为我正在做一些基本的错误,因为拼接适用于第一个循环然后数组返回到原始的。请你帮我辨别我的错误吗?
for (var x = 0; x < 5; x++) {
var sourceArray = ss.getRange(49,j+5,8,1).getValues();
var gg = Math.floor(Math.random()*sourceArray.length);
var pickedHLA = sourceArray[gg];
sourceArray.splice(gg, 1);
var HLAselect = ss.getRange(30+x,j+5,1,1)
HLAselect.setValue(pickedHLA);
答案 0 :(得分:0)
在你的> names(test)
[1] "course1" "city" "website"
> names(foo)
[1] "city" "course1"
> names(bar)
[1] "code" "website"
循环中,你在每次迭代中重新定义for
- 你需要在循环外定义它,然后你的工作随机选择并从数组中删除:
sourceArray
答案 1 :(得分:0)
你这样做的方式实际上非常简单,只需要几行代码:
var arr = ["Cheese", "Purple", "List", "1", "2", "3", "4", "5"];
function random() {
var randomNumber1 = parseInt(Math.random() * arr.length);
var random = arr[randomNumber1];
alert(random);
}
<button onClick="random()">Click Me</button>
你去吧!