Можем ли мы увеличить имя глобальной переменной внутри цикла for как переменную при использовании Postman? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь проанализировать данные ответа и получить значения для "id".Так как я ожидаю несколько значений для одного и того же ответа, я помещаю его в массив.Внутри цикла for я увеличиваю массив с индексом, установленным в i.Каждое из этих значений мне нужно передать в глобальную переменную, такую ​​как var_id0, var_id1 ... var_idn.

Может ли быть увеличено число против глобального имени "var_id" внутри цикла for?

Я просмотрел несколько примеров, но ни один из них не показывает мне, можно ли это сделать при установке глобальной переменной.

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 ]

2 голосов
/ 09 июля 2019

"var_id"[i] означает поиск i-го индекса в "var_id", и для строк, которые будут соответствовать символу в позиции i, поэтому "var_id"[0] будет "v". Вместо этого вы хотите создать строки путем добавления i к "var_id", что можно сделать с помощью +.

1 голос
/ 09 июля 2019

Зачем вам нужны все эти глобальные переменные?Определите один глобальный массив и вставьте в него свои значения.Затем получите доступ к ним по индексу.Почти такой же синтаксис, как вы хотели.

1 голос
/ 09 июля 2019

Изменить

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

На

pm.globals.set(`var_id${i}`, index_id[i])
0 голосов
/ 09 июля 2019

Вы можете использовать функцию 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.
}
...