Отказ от ответственности: я не знаком с Javascript. Я просто собрал базовое понимание того, что мне нужно сделать для этой задачи, из Stack Overflow и других ресурсов. Мои извинения, если что-то ниже неясно.
Моя проблема: мне нужно сгенерировать случайное число от 0 до 8764, используя Javascript, которое не будет повторяться между ответами на опросы Qualtrics.
В настоящее время я нашел код для создания массива, который содержит все числа от 0 до 8764, перемешивает массив и извлекает последнее число из конца массива. Затем он добавляет встроенные данные в Qualtrics с этим всплывающим номером, и затем я могу передать встроенные данные в вопрос Qualtrics, чтобы отобразить их респонденту моего опроса. Смотри ниже:
Qualtrics.SurveyEngine.addOnReady(function()
{
for (var i = 0, ar = []; i < 8; i++) {
ar[i] = i;
}
ar.sort(function () {
return Math.random() - 0.5;
});
var randomnumber = ar.pop();
Qualtrics.SurveyEngine.addEmbeddedData("randomnumber", randomnumber);
});
Однако, насколько я могу судить, этот код Javascript «сбрасывает» себя между ответами на опрос, то есть он будет воссоздавать и перетасовывать массив каждый раз, когда новый респондент входит в опрос. Я хотел бы найти способ сделать так, чтобы новый респондент не мог видеть то же всплывающее «случайное число», что и предыдущий респондент. Таким образом, если первый респондент увидел 1, то следующий респондент может увидеть любое число, кроме 1 (скажем, вместо этого он увидит 100), а следующий респондент может увидеть любое число, кроме 1 или 100, и т. д. и т. д. .
Я думаю, что можно использовать встроенные данные в коде Javascript и манипулировать ими (см. здесь). Похоже, что может быть способ получить доступ к встроенным данным randomnumber и написать код Javascript, чтобы не удалять любые числа из массива, которые соответствуют одному из ранее извлеченных randomnumbers. Мне не хватает технических знаний, чтобы выполнить это, даже если это лучший способ выполнить задачу.
Любая помощь приветствуется!