Участие в имени переменной значений переменных

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

  • @romanbiz Можно через eval()

    eval('VAR_TEST'+VAR_CYCLE_INDEX+' = VAR_CYCLE_INDEX')
    

    Вот тестовый скрипт.

    0_1520244795146_на форум32.png

  • @Fox Огромное спасибо

  • @Fox Добрый вечер, не могу сообразить, а как сделать, чтобы лог не в конце цикла выводился с наперед заданными переменными, а внутри цикла? То есть мы получили переменную TEST1 и сразу же ее вывели в лог, получили переменную TEST2 и вывели ее и тд.

  • Разобрался, нужно в лог просто тот же eval написать и всё, только без части присваивания значения переменной

  • @Lolikus said in Участие в имени переменной значений переменных:

    Разобрался, нужно в лог просто тот же eval написать и всё, только без части присваивания значения переменной

    Это пример плохого кода, лучше используйте список

  • @Fox у меня как раз-таки TEST1, TEST2 и тд - это уже и есть списки. Только теперь у меня возник вопрос, как потом эти списки вызывать, например, для извлечения элемента. Причем вызывать также, в зависимости от переменной цикла.

    Пример: Идет первая итерация цикла. Хочу из списка TEST1 прочитать второй элемент. Как мне это можно сделать по простому, если в модуле "список" входными значениями могут быть только конкретно заданные переменные? То есть там можно только написать конкретную переменную, содержащую список, в данном случае TEST1. Но у меня же будет и вторая и третья итерация цикла, поэтому это не подходит. Единственное что я придумал, так это в каждой итерации цикла через eval создавать новый список N, который бы становился равным TEST1, и тогда уже потом из этого N извлекать нужный элемент.

  • @Lolikus said in Участие в имени переменной значений переменных:

    @Fox у меня как раз-таки TEST1, TEST2 и тд - это уже и есть списки. Только теперь у меня возник вопрос, как потом эти списки вызывать, например, для извлечения элемента. Причем вызывать также, в зависимости от переменной цикла.

    Вы можете в список помещать не только элементы, но и другие списки

    Пример: Идет первая итерация цикла. Хочу из списка TEST1 прочитать второй элемент. Как мне это можно сделать по простому, если в модуле "список" входными значениями могут быть только конкретно заданные переменные? То есть там можно только написать конкретную переменную, содержащую список, в данном случае TEST1. Но у меня же будет и вторая и третья итерация цикла, поэтому это не подходит. Единственное что я придумал, так это в каждой итерации цикла через eval создавать новый список N, который бы становился равным TEST1, и тогда уже потом из этого N извлекать нужный элемент.

    Если у вас двумерный массив (список со списками) или объект (ассоциативный массив), это можно сделать очень легко, обращаться по индексу в случае с двумерным массивом или название свойства в случае с объектом

  • @Fox Ооо, спасибо, я не знал про объекты, с ними все прекрасно работает в моем случае