我想从变量中获取一个值,然后将其用作另一个变量的名称。我有这样的事情:
var eval(BodyWeight[i]["ExerciseTitle"]) = BodyWeight[i]["ExerciseVideo"];
这给了我一个错误,'缺失;在声明'。
之前有什么想法吗?
答案 0 :(得分:2)
如果您将eval
中当前包含的部分指定为属性,则会更容易。
var myvar = {};
myvar[BodyWeight[i]["ExerciseTitle"]] = BodyWeight[i]["ExerciseVideo"];
不需要邪恶的评估。
答案 1 :(得分:2)
虽然eval
会为您提供一种变量形式,但它很混乱并可能导致语法错误:
try {
eval('var ' + BodyWeight[i]["ExerciseTitle"] + ' = BodyWeight[i].ExerciseVideo');
} catch () {
// what to do here if BodyWeight[i]["ExerciseTitle"] isn't a valid variabe name?
}
最好使用对象属性而不是局部变量。
thing[BodyWeight[i].ExerciseTitle] = BodyWeight[i].ExerciseVideo;
答案 2 :(得分:0)
如果我理解你希望完成的事情:
var eval(BodyWeight[i]["ExerciseTitle"]) = BodyWeight[i]["ExerciseVideo"];
//to try and get
var BodyWeight4ExerciseTitle = BodyWeight[i]["ExerciseVideo"];
^-//guessing this is an iterator
要完成此任务,请执行以下操作:
var key = 'BodyWeight' + i + 'ExerciseTitle';
window[key] = BodyWeight[i]["ExerciseVideo"];
//now you have a global variable "BodyWeight4ExerciseTitle"