使用另一个变量值设置变量名称 - Javascript

时间:2010-02-06 03:52:58

标签: javascript variables naming

我想从变量中获取一个值,然后将其用作另一个变量的名称。我有这样的事情:

var eval(BodyWeight[i]["ExerciseTitle"]) = BodyWeight[i]["ExerciseVideo"]; 

这给了我一个错误,'缺失;在声明'。

之前

有什么想法吗?

3 个答案:

答案 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"