Я пытаюсь выполнить случайный выбор из списка людей в столбце A, однако после того, как они были выбраны, они должны быть удалены из списка. Идея состоит в том, чтобы создать список, который будет случайным образом выбирать кого-то каждую неделю, но удалять человека после его выбора (и воссоздавать массив после его 0)
Example
Paul
David
John
Matt
запустив random(A1:A4) , я могу выбрать Дэвида в качестве своего выбора, однако в следующий раз, когда я запускаю функцию, массив снова строится из A1:A4, поэтому Дэвид не удаляется.
Я попытался добавить второй столбец для отслеживания выборов, а затем удалить их из массива, однако мне удалось удалить только 1 значение из массива, не сохранив то, что было сделано.
Example
List of Users Tracking Result (print all values)
Paul John David,Paul,Matt
David John David Paul,Matt
John David Matt Paul,John
Matt Matt David Paul,John
Хотя результат не все значения, я включил все значения, чтобы показать логическую проблему, с которой я столкнулся. В столбце отслеживания я оставил первое поле пустым, чтобы значение в поле отслеживания было значением, которое я получаю из результата (результат обычно получает только 1 значение). Итак, B2 = C1
Могу ли я получить некоторые указания о том, как это сделать. (google-приложения-скрипт)
Для тех, кто просит код, вот он
function random(a,b) {
var listPeople = new Array();
for (var i = 0; i < a.length; i++) {
var row = a[i];
for (var j = 0; j < row.length; j++) {
var value = row[j];
if (value) {
listPeople.push(value);
}
}
}
//deleting someone
var trackPeople = listPeople.slice(0);
for (var i = 0; i < trackPeople.length; i++) {
if (trackPeople[i] == b) {
trackPeople.splice(i,1);
}
}
// Returning a persons name
if (trackPeople.length > 0) {
var pick = Math.floor(Math.random() * trackPeople.length);
return trackPeople[pick];
}
}