我们可以在使用 Postman 时像变量一样在 for 循环中增加全局变量名称吗

Can we Increment the global variable name inside a for loop like a variable when using Postman

我正在尝试解析响应数据并获取 "id" 的值。由于我期望同一响应有多个值,因此我将其放入一个数组中。在 for 循环中,我将索引设置为 i 的数组递增。我需要将这些值中的每一个传递给全局变量,例如 var_id0、var_id1... var_idn.

全局名称 "var_id" 的数字可以在 for 循环内递增吗?

我查找了多个示例,但 none 向我展示了在设置全局变量时是否可以这样做。

var index_id= [];
var jsonData = JSON.parse(responseBody);
for (var i = 0; i < jsonData.list.length; i++) {  
    var counter = jsonData.list[i];
    index_id[i] = counter.id;
    pm.globals.set("var_id"[i], index_id[i]) <<-- How can this be achieved.
    //pm.globals.set("variable name", "variable value") --> Actual syntax.
}

我的期望是,直到到达for循环的末尾,每次循环全局变量名称将递增1并设置相应的值。 例如:

var_id1 = "700" var_id2 = "800"...

"var_id"[i] 表示 "var_id" 中查找第 i 个索引,对于将计算为位置 i 处的字符的字符串,因此 "var_id"[0] 将是 "v"。相反,您想通过 i 附加到 "var_id" 来构建字符串,这可以通过 +.

来完成

您可以使用eval函数。

var index_id= [];
var jsonData = JSON.parse(responseBody);
for (var i = 0; i < jsonData.list.length; i++) {  
    var counter = jsonData.list[i];
    index_id[i] = counter.id;
    eval("var_id"+i+"="+index_id[i]);
    //pm.globals.set("var_id"[i], index_id[i]) <<-- How can this be achieved.
    //pm.globals.set("variable name", "variable value") --> Actual syntax.
}

改变

pm.globals.set("var_id"[i], index_id[i])

pm.globals.set(`var_id${i}`, index_id[i])

为什么需要所有这些全局变量?定义一个全局数组并将您的值放入其中。然后通过索引访问它们。几乎与您想要的语法相同。