Reputation: 358
I have the following problem. As example, these variables are declared:
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
};
Now I want to change the finalversion values by choose a random version and getting it's values.
var versionnum = Math.floor(Math.random() * Math.floor(3));
Is there a way to make something like this?:
chosenversion = {
number1: version[versionnum].number1;
number2: version[versionnum].number2;
number3: version[versionnum].number3;
};
or
chosenversion = {
number1: version+versionnum.number1;
number2: version+versionnum.number2;
number3: version+versionnum.number3;
};
or something simular?
Thanks and sorry for the long question.
Upvotes: 3
Views: 135
Reputation: 1442
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];
Upvotes: 6
Reputation: 15665
you need to add 1 to your versionnum
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
};
Upvotes: 0
Reputation: 29657
You could turn chosenversion
into a function.
Then use the version as a parameter for the function
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));
Upvotes: 2
Reputation: 2146
If you are running it from browser, you can catch them from window
object like
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}`])
Upvotes: 0