如何在 Qualtrics 中使用 TypeScript 解析 Int 或 ParseInt 嵌入式数据?

How to parseInt or ParseInt embedded data with TypeScript in Qualtrics?

即使我在调查流程的早期将整数保存到嵌入数据中(在不同屏幕上的先前块中),我也无法在 Javascript 中获取嵌入数据值,确保将其解析为a number/integer,然后在循环中使用它。这是关于 TypeScript 的吗?我在 TypeScript 文档中没有看到任何关于 parseInt 或 ParseInt 的信息。

例如,假设我执行以下操作:

// 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)
   }

知道为什么这不起作用吗?也许我只是不知道如何解析 int()。

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.

在"normal" JS运行系统中,我们有parseInt函数,该函数获取一个字符串(如数字字符串)作为参数。在此环境中,我们不支持您的语法 - “${e://Field/foo}”,因为它不是 "number string".

在 Qualtrics 系统环境中,他们也有 parseInt,但他们支持他们的自定义语法 "${e://Field/foo}" 以获得 EmbeddedData

确保您的代码在 Qualtrics system environment 上是 运行。