有没有办法在变量名称中使用变量?

时间:2020-01-26 20:27:51

标签: javascript variables

我有以下问题。 例如,声明以下变量:

var chosenversion = {
number1: 6,
number2: 4,
number3: 9
};

var version1 = {
number1: 6,
number2: 4,
number3: 9
};

var version2 = {
number1: 2,
number2: 7,
number3: 8
};

var version3 = {
number1: 1,
number2: 5,
number3: 2
};

现在我想通过选择一个随机版本并获取它的值来更改finalversion值。

var versionnum = Math.floor(Math.random() * Math.floor(3));

有没有办法做这样的事情?:

chosenversion = {
number1: version[versionnum].number1;
number2: version[versionnum].number2;
number3: version[versionnum].number3;
};

chosenversion = {
number1: version+versionnum.number1;
number2: version+versionnum.number2;
number3: version+versionnum.number3;
};

还是类似的东西?

很抱歉,很长的问题。

4 个答案:

答案 0 :(得分:6)

var versions = {
    version1: {
        number1: 6,
        number2: 4,
        number3: 9
    },
    version2: {
        number1: 2,
        number2: 7,
        number3: 8
    },
    version3: {
        number1: 1,
        number2: 5,
        number3: 2
    }
}

var versionnum = Math.floor(Math.random() * Math.floor(3)) + 1;

var chosenversion = versions["version" + versionnum];

答案 1 :(得分:2)

您可以将chosenversion转换为函数。

然后使用版本作为函数的参数

const version1 = {
number1: 6,
number2: 4,
number3: 9
};

const version2 = {
number1: 2,
number2: 7,
number3: 8
};

const version3 = {
number1: 1,
number2: 5,
number3: 2
};

const chosenversion = (version) => {
switch(version) {
 case 1:  return version1; break;
 case 2:  return version2; break;
 case 3:  return version3; break;
 default: return version1;
   } 
};

console.log(chosenversion(1).number1);
console.log(chosenversion(2).number1);

var versionnum = Math.floor(Math.random() * 3) + 1;

console.log('versionnum: '+ versionnum);

console.log(chosenversion(versionnum));

答案 2 :(得分:0)

如果您是通过浏览器运行的,则可以从window对象中捕获它们,例如

var chosenversion = {
number1: 6,
number2: 4,
number3: 9
};

var version1 = {
number1: 6,
number2: 4,
number3: 9
};

var version2 = {
number1: 2,
number2: 7,
number3: 8
};

var version3 = {
number1: 1,
number2: 5,
number3: 2
};

let ver = 1;
let num = 2;

console.log(window[`version${ver}`][`number${num}`])

答案 3 :(得分:0)

您需要在版本号中添加1

var versions = {
    version1: {
        number1: 6,
        number2: 4,
        number3: 9
    },
    version2: {
        number1: 2,
        number2: 7,
        number3: 8
    },
    version3: {
        number1: 1,
        number2: 5,
        number3: 2
    }
}

var versionnum = Math.floor(Math.random() * Math.floor(3)) + 1;
console.log(versionnum);

chosenversion = {
    number1: versions["version" + versionnum].number1,
    number2: versions["version" + versionnum].number2,
    number3: versions["version" + versionnum].number3
};

相关问题