Я пытаюсь проанализировать данные ответа и получить значения для «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"...



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


"var_id"[i] означает ищите i-й индекс в "var_id" и для строк, которые будут оцениваться как символ в позиции 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.
}
спасибо за отрицательный голос без объяснения причин. eval иногда не является злом, примите это. :)
Однако здесь это совершенно необязательно, и у вас все еще есть "var_id"[i].
@Paulpro Вы имеете в виду строку после строки с eval? Какая часть не нужна?
Изменять
pm.globals.set("var_id"[i], index_id[i])
К
pm.globals.set(`var_id${i}`, index_id[i])
Привет, Кристофер Брэдли. Проблема с вышеизложенным заключается в том, что globals.set берет все, что находится внутри кавычек, в качестве имени переменной и не добавляет значения по желанию.
Ах, я вижу, у вас есть образец ответа. Я знаю, что вы отметили один как ответ, но, возможно, это был бы более эффективный способ, если бы у меня был пример ответа. Ваше здоровье!
Вот что я поймал в глобальной настройке почтальона: VARIABLE INITIAL VALUE CURRENT VALUE var_id${[i]} 747 747
Ааа, я напортачил со своей стороны, проверьте мой отредактированный ответ без скобок.
var_id${i} 732 732
Зачем вам все эти глобальные переменные? Определите один глобальный массив и поместите в него свои значения. Затем получить к ним доступ по индексу. Почти такой же синтаксис, как вы хотели.
Привет Джонас Уилмс, это сработало как шарм. Спасибо. Добавление +, как вы упомянули, помогает добавить числовое значение к имени глобальной переменной. Спасибо.