У меня есть скрипт, который перемешивает значения в массиве.Эти значения представляют людей, которые доступны.Когда они недоступны, они удаляются из массива.Я хочу сделать этот массив "динамическим", так как он регулирует диапазон в зависимости от количества значений в листе.
Я пытался создать именованный диапазон, но это не устраняет ручную задачу изменения размера именованного диапазона.Удаление человека из массива приведет к перемешиванию пустой ячейки с другими значениями.Я пытался поэкспериментировать с функцией .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;
}
}
Либо создание динамического диапазона, либо игнорирование пустых ячеек в массиве - это моецель.