js преобразование строки с [*] в переменную

У меня есть базовая переменная, которую я получаю из моего API:

nurseListSpeciality.avatar = "srcs[14]"

Я хочу изменить srcs[14] на имя массива, чтобы мой объект был похож на:

nurseListSpeciality:[{avatar: srcs[14]}]

Основная проблема в том, что я не хочу выполнять ссылку на массив, но я хочу поместить только имя этого объекта в мой объект.

Вот почему я не смог использовать eval(), Эвал пытается получить srcs[14] ценить и положить его в мой объект. Это не то, что я хочу.

2 ответа

Консоль vuejs дает:

Uncaught (in promise) TypeError: this.nurseListSpeciality[i].eval is not a function

Сообщение об ошибке говорит вам, что this.nurseListSpeciality[i] не имеет eval метод, вам нужно вызвать глобальный eval на this.nurseListSpeciality[i].avatar как.

 eval(this.nurseListSpeciality[i].avatar)

Заметка

  • Это не будет работать, если у вас нет переменной srcs доступны в вашем текущем объеме.

Если вы открыты для использования lodash, используя _.get хороший способ сделать это:

nurseListSpeciality.avatar = _.get(window, "srcs[14]");

Этот код предполагает, что srcs переменная, которая доступна глобально (в window объект). Если у вас есть другие возможности, вы должны заменить window с соответствующим объектом.

Другие вопросы по тегам