js将带[*]的字符串转换为变量

时间:2018-04-13 08:28:14

标签: arrays angular object vue.js object-literal

我已经从我的api获得了基本变量:

nurseListSpeciality.avatar = "srcs[14]"

我想将srcs [14]更改为数组名称,我的对象应该是:

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

主要问题是我不想在数组上执行引用,但我想在我的对象中只放一个名称。

这就是我没有使用eval()的原因。 Eval正试图获得srcs[14]值并将其放入我的对象中。这不是我想要的。

2 个答案:

答案 0 :(得分:0)

如果你打开使用lodash,使用_.get是一种很好的方法:

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

此代码假定srcs是一个全局可用的变量(在window对象中)。如果您有其他范围,则应将window替换为相应的对象。

答案 1 :(得分:0)

  

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,则无效。