如何在 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 上是 运行。
即使我在调查流程的早期将整数保存到嵌入数据中(在不同屏幕上的先前块中),我也无法在 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 上是 运行。