我正在尝试解析响应数据并获取“ 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” ...
答案 0 :(得分:2)
"var_id"[i]
表示在"var_id"
中查找第i个索引,对于要求值到位置i处字符的字符串,因此"var_id"[0]
将是{ {1}}。相反,您想通过将{em> "v"
附加到i
上来构建字符串,这可以通过"var_id"
完成。
答案 1 :(得分:1)
更改
pm.globals.set("var_id"[i], index_id[i])
收件人
pm.globals.set(`var_id${i}`, index_id[i])
答案 2 :(得分:1)
为什么需要所有这些全局变量?定义一个全局数组并将值推入其中。然后按索引访问它们。几乎与您想要的语法相同。
答案 3 :(得分:-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.
}