gpt4 book ai didi

arrays - 如何为已打乱的数组添加依赖项?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:38:28 25 4
gpt4 key购买 nike

我有一个脚本可以随机排列数组中的值。这些值代表有空的人。当它们不可用时,它们将从阵列中移除。我希望使这个数组“动态”,因为它根据工作表中值的数量调整范围。

我已经尝试创建一个命名范围,但这并不能消除更改命名范围大小的手动任务。从数组中删除一个人将导致空白单元格与其他值混入。我尝试过使用 .filter() 函数进行试验,但在 JS 和应用程序脚本方面我相当业余。

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Sheet");
var candidates = ss.getRange("Test Sheet!B2:B10").getValues();
var arrayValues = ss.getRange("Test Sheet!F1:F12").getValues();


for (var x = 0; x < arrayValues.length; x++) {
var range = ss.getRange(1, 6, 12);
var array = range.getValues();
shuffleArray(array);
range.setValues(array);
}
}
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}

使范围动态化或忽略数组中的空白单元格是我的目标。

最佳答案

  • 您想从 var range = ss.getRange(1, 6, 12) 中随机化“F1:F12”的单元格。
  • 例如,如果“F1:F12”的值是["a", "b", "", "c", "d"],你想这样做[“b”、“a”、“d”、“c”]
    • 您想删除空单元格。

如果我的理解是正确的,这个修改怎么样?我觉得你的情况,可以使用randomize()的方法。

修改后的脚本:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.getRange("Sheet1!F1:F12").randomize();
}

引用:

关于arrays - 如何为已打乱的数组添加依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54717266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com