Установка имени переменной с другим значением переменной - Java Script - PullRequest
1 голос
/ 06 февраля 2010

Я хочу получить значение из переменной, а затем использовать его в качестве имени для другой переменной. Я получил что-то вроде этого:

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

Это дает мне ошибку, 'отсутствует; до заявления ".

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 06 февраля 2010

Хотя 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 голосов
/ 06 февраля 2010

Будет проще, если вы укажите часть, которую вы в настоящее время включили в eval как свойство.

var myvar = {};
myvar[BodyWeight[i]["ExerciseTitle"]] = BodyWeight[i]["ExerciseVideo"];

Не нужно злого пробуждения.

0 голосов
/ 06 февраля 2010

Если я понимаю, что вы надеетесь достичь:

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"
...