Home Javascript - How to have a variable that combined a letter and a number call another variable

# Javascript - How to have a variable that combined a letter and a number call another variable

Kyle Wilcox
1#
Kyle Wilcox Published in 2017-11-13 15:27:46Z
 I am currently making a STEM Math Game. I made a function call onLoad() that gets 20 different random numbers that do not repeat and set them as variables. Now I'm trying to take that number and add Q to the front of it because I have different variables named Q1, Q2, etc. But when I try to console.log the variable X that combined the two all it displays is Q1 instead of the string in the variable Q1. Any help will be appreciated! //Questions - Answers var Q1 = "5 x 107 = ?"; //var A1 = "A: 50,000,000"; var A1 = "

"; var Q2 = "3.868 x 109 = ?"; var A2 = "B: 3,868,000,000"; var Q3 = "What is the answer for 20000000 × 3.5 × 1000000 in scientific notation?"; var A3 = "A: 7 × 1013"; var Q4 = "123,000 = ?"; var A4 = "B: 1.23 x 105"; var Q5 = "0.00123 x 105 = ?"; var A5 = "A: 12.3 x 101"; var Q6 = "0.0686 x 100 = ?"; var A6 = "C: 0.0686"; var Q7 = "2.26 x 105 = ?"; var A7 = "B: 226,000"; var Q8 = "0.0002395 = ?"; var A8 = "C: 2.395 x 10-4"; var Q9 = "731,000 = ?"; var A9 = "A: 7.31 x 105"; var Q10 = "0.00018 = ?"; var A10 = "B: 1.8 x 10-4"; var Q11 = "2x = 54"; var A11 = "D: x = 27"; var Q12 = "x = 81"; var A12 = "A: x = 81"; var Q13 = "4x+8=7.2+5x"; var A13 = "C: x = 0.800"; var Q14 = "4(0.5f−0.25)=6+f"; var A14 = "C: f = 7"; var Q15 = "2+6g=11−3g"; var A15 = "B: g = 1"; var Q16 = "−11f=7(1−2f)+5"; var A16 = "A: f = 4"; var Q17 = "0.5s+1=7+4.5s"; var A17 = "B: s = -1.5"; var Q18 = "2(x+3) = 16"; var A18 = "D: x = 5"; var Q19 = "21+3j = 6"; var A19 = "C: j = -5"; var Q20 = "4(x-1) = -16"; var A20 = "A: x = -3"; var Q21 = "A company charges a flat fee of 1500 dollars to rent a yacht. In addition, renters must pay 100 dollars per hour. Which equation shows the cost C to rent a yacht for h hours?"; var A21 = "C: C = 100h + 1500"; var Q22 = "What is the equation of a line that has a slope of 3/5 and a y-intercept of 2?"; var A22 = "A: 5y - 3x = 10"; var Q23 = "Make an equation for sixteen more than a number is 9."; var A23 = "C: 16 + x = 9"; var Q24 = "There are b boys in the class. This is three more than four times the number of girls. How many girls are in the class?"; var A24 = "B: b = 3 + 4g"; var Q25 = "The sum of two numbers is 84, and one of them is 12 more than the other. What is the equation?"; var A25 = "D: x + 12 + x = 84"; var Q26 = "Anton's birthday party costs $2 for every guest he invites. Write an equation that shows the relationship between the guests x and the cost y."; var A26 = "A: y = 2x"; var Q27 = "Allie jars 6 liters of jam every day. Write an equation that shows the relationship between the days x and the jam made y."; var A27 = "C: y = 6x"; var Q28 = "Gabe can grow 8 flowers with every seed packet. Write an equation that shows the relationship between the number of seed packets x and the total number of flowers y."; var A28 = "B: y = 8x"; var Q29 = "Bella's retirement party costs$6, plus an additional \$1 for each guest she invites. Write an equation that shows the relationship between the guests x and the cost y."; var A29 = "C: y = x + 6"; var Q30 = "Cole has already taken 4 pictures at home, and he expects to take 1 picture during every day of vacation. Write an equation that shows the relationship between the days of vacation x and the total number of pictures taken y."; var A30 = "C: y = x + 4"; //Question Numbers var N1 = Math.floor(Math.random() * 30) + 1; var N2 = 0; var N3 = 0; var N4 = 0; var N5 = 0; var N6 = 0; var N7 = 0; var N8 = 0; var N9 = 0; var N10 = 0; var N11 = 0; var N12 = 0; var N13 = 0; var N14 = 0; var N15 = 0; var N16 = 0; var N17 = 0; var N18 = 0; var N19 = 0; var N20 = 0; //On Game Load function onLoad() { do { N2 = Math.floor(Math.random() * 30) + 1; } while(N2 === N1); do { N3 = Math.floor(Math.random() * 30) + 1; } while(N3 === N1 || N3 === N2); do { N4 = Math.floor(Math.random() * 30) + 1; } while(N4 === N1 || N4 === N2 || N4 === N3); do { N5 = Math.floor(Math.random() * 30) + 1; } while(N5 === N1 || N5 === N2 || N5 === N3 || N5 === N4); do { N6 = Math.floor(Math.random() * 30) + 1; } while(N6 === N1 || N6 === N2 || N6 === N3 || N6 === N4 || N6 === N5); do { N7 = Math.floor(Math.random() * 30) + 1; } while(N7 === N1 || N7 === N2 || N7 === N3 || N7 === N4 || N7 === N5 || N7 === N6); do { N8 = Math.floor(Math.random() * 30) + 1; } while(N8 === N1 || N8 === N2 || N8 === N3 || N8 === N4 || N8 === N5 || N8 === N6 || N8 === N7); do { N9 = Math.floor(Math.random() * 30) + 1; } while(N9 === N1 || N9 === N2 || N9 === N3 || N9 === N4 || N9 === N5 || N9 === N6 || N9 === N7 || N9 === N8); do { N10 = Math.floor(Math.random() * 30) + 1; } while(N10 === N1 || N10 === N2 || N10 === N3 || N10 === N4 || N10 === N5 || N10 === N6 || N10 === N7 || N10 === N8 || N10 === N9); do { N11 = Math.floor(Math.random() * 30) + 1; } while(N11 === N1 || N11 === N2 || N11 === N3 || N11 === N4 || N11 === N5 || N11 === N6 || N11 === N7 || N11 === N8 || N11 === N9 || N11 === N10); do { N12 = Math.floor(Math.random() * 30) + 1; } while(N12 === N1 || N12 === N2 || N12 === N3 || N12 === N4 || N12 === N5 || N12 === N6 || N12 === N7 || N12 === N8 || N12 === N9 || N12 === N10 || N12 === N11); do { N13 = Math.floor(Math.random() * 30) + 1; } while(N13 === N1 || N13 === N2 || N13 === N3 || N13 === N4 || N13 === N5 || N13 === N6 || N13 === N7 || N13 === N8 || N13 === N9 || N13 === N10 || N13 === N11 || N13 === N12); do { N14 = Math.floor(Math.random() * 30) + 1; } while(N14 === N1 || N14 === N2 || N14 === N3 || N14 === N4 || N14 === N5 || N14 === N6 || N14 === N7 || N14 === N8 || N14 === N9 || N14 === N10 || N14 === N11 || N14 === N12 || N14 === N13); do { N15 = Math.floor(Math.random() * 30) + 1; } while(N15 === N1 || N15 === N2 || N15 === N3 || N15 === N4 || N15 === N5 || N15 === N6 || N15 === N7 || N15 === N8 || N15 === N9 || N15 === N10 || N15 === N11 || N15 === N12 || N15 === N13 || N15 === N14); do { N16 = Math.floor(Math.random() * 30) + 1; } while(N16 === N1 || N16 === N2 || N16 === N3 || N16 === N4 || N16 === N5 || N16 === N6 || N16 === N7 || N16 === N8 || N16 === N9 || N16 === N10 || N16 === N11 || N16 === N12 || N16 === N13 || N16 === N14 || N16 === N15); do { N17 = Math.floor(Math.random() * 30) + 1; } while(N17 === N1 || N17 === N2 || N17 === N3 || N17 === N4 || N17 === N5 || N17 === N6 || N17 === N7 || N17 === N8 || N17 === N9 || N17 === N10 || N17 === N11 || N17 === N12 || N17 === N13 || N17 === N14 || N17 === N15 || N17 === N16); do { N18 = Math.floor(Math.random() * 30) + 1; } while(N18 === N1 || N18 === N2 || N18 === N3 || N18 === N4 || N18 === N5 || N18 === N6 || N18 === N7 || N18 === N8 || N18 === N9 || N18 === N10 || N18 === N11 || N18 === N12 || N18 === N13 || N18 === N14 || N18 === N15 || N18 === N16 || N18 === N17); do { N19 = Math.floor(Math.random() * 30) + 1; } while(N19 === N1 || N19 === N2 || N19 === N3 || N19 === N4 || N19 === N5 || N19 === N6 || N19 === N7 || N19 === N8 || N19 === N9 || N19 === N10 || N19 === N11 || N19 === N12 || N19 === N13 || N19 === N14 || N19 === N15 || N19 === N16 || N19 === N17 || N19 === N18); do { N20 = Math.floor(Math.random() * 30) + 1; } while(N20 === N1 || N20 === N2 || N20 === N3 || N20 === N4 || N20 === N5 || N20 === N6 || N20 === N7 || N20 === N8 || N20 === N9 || N20 === N10 || N20 === N11 || N20 === N12 || N20 === N13 || N20 === N14 || N20 === N15 || N20 === N16 || N20 === N17 || N20 === N18 || N20 === N19); questions(); } function questions() { var Q = "Q"; var x1 = Q.concat(N1); //var x1 = Q + N1; var y1 = document.getElementById("Q1"); y1.innerHTML = x1; var z1 = document.getElementById("1").getElementsByClassName("answers"); z1.innerHTML = A1; console.log(x1); }
Robbie Milejczak
2#
Robbie Milejczak Reply to 2017-11-13 15:33:15Z
 The value of x1 is a literal string e.g. "Q2". The javascript interpreter will never see this as a variable because it is a string. You need to restructure your application, instead of using so many variables, build an object. var Q = { 'Q1': 'string', 'Q2': 'string', }  etc, etc. Then you can say Q[x1] and you will get the value of the corresponding property. That is the only way I can think to accomplish what you're looking for.
Niet the Dark Absol
3#
Niet the Dark Absol Reply to 2017-11-13 15:31:01Z
 What you are looking for is called an "array". var questions = [ { question: "5 x 107 = ?", answer: "Find a calculator." }, // ... ];  Then: questions.sort(function() {return Math.random()-0.5;}); // imperfect shuffle, you'll need more code for a good one but this works decently  And: console.log(questions[0].question); console.log(questions[0].answer); 
Shpingalet007
4#