Как анализировать или ParseInt встроенные данные с TypeScript в Qualtrics? - PullRequest
1 голос
/ 15 апреля 2020

Даже когда я сохраняю целое число во встроенных данных ранее в процессе съемки (в предыдущих блоках на разных экранах), я не могу в Javascript получить значение встроенных данных, убедитесь, что оно анализируется как число / целое число затем используйте его в al oop. Это что-то о TypeScript? Я не видел ничего о parseInt или ParseInt в документации TypeScript.

Например, предположим, что я делаю следующее:

// Draw a random number
var x = Math.floor(Math.random() * 5);

// Save it in embedded data
Qualtrics.SurveyEngine.setEmbeddedData("foo", x);

// In a later block on a different screen, get the embedded data as an integer
var x_new = "${e://Field/foo}"; // not an int
var x_new = parseInt("${e://Field/foo}"); // doesn't work
var x_new = ParseInt("${e://Field/foo}"); // doesn't work

// Loop using x_new:
for(i = 0; i < x_new; i++) {
   console.log(i)
   }

Есть идеи, почему это не работает? Возможно, я просто не знаю, как анализировать ().

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

В "нормальной" JS среде выполнения у нас есть функция parseInt, функция получает строку (например, числовую строку) в качестве параметра. В этом env мы не поддерживаем ваш синтаксис - «$ {e: // Field / foo}», потому что это не «числовая строка».

В системной среде Qualtrics они имеют parseInt тоже, но они поддерживают свой собственный синтаксис "${e://Field/foo}" для получения EmbeddedData.

Убедитесь, что ваш код работает в системной среде Qualtrics .

1 голос
/ 15 апреля 2020

ParseInt просто превращает вашу строку в целое число. Посмотрите на демо ниже.

let myVar = "${e://Field/foo}"; // This is a string
console.log(myVar); // This prints a string
console.log(parseInt(myVar)); // This prints "NaN", i.e. Not a Number, because the string isn't a representation of a number.
...