0

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

可以在 for 循环内递增针对全局名称“var_id”的数字吗?

我查找了多个示例,但没有一个示例告诉我在设置全局变量时是否可以完成这样的事情。

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"...

4

4 回答 4

2

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

于 2019-07-09T12:15:46.960 回答
1

改变

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

pm.globals.set(`var_id${i}`, index_id[i])
于 2019-07-09T12:20:42.013 回答
1

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

于 2019-07-09T12:43:42.283 回答
-3

你可以使用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.
}
于 2019-07-09T12:16:57.097 回答