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
с соответствующим объектом.