我有以下问题。 例如,声明以下变量:
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;
};
还是类似的东西?
很抱歉,很长的问题。
答案 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
};