3

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.

2
  • 1
    Don't declare multiple variables in the beginning, but an object instead. Commented Jan 26, 2020 at 20:29
  • This question is similar to: Is there a JavaScript equivalent of PHP’s “variable variables”?. If you believe it’s different, please edit the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem. Commented Dec 4, 2024 at 14:02

4 Answers 4

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]; 
Sign up to request clarification or add additional context in comments.

Comments

2

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));

Comments

0

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}`])

Comments

0

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 };

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.