function generate() { const notations = [" U", " D", " R", " L", " F", " B"]; const switches= ["", "\'", "2"]; let array = []; let last = ''; let random = 0; for (let i = 0; i < 20; i++) { do { random = Math.floor(Math.random() * notations.length); } while (last == notations[random]) last = notations[random]; let Item = notations[random] + switches[parseInt(Math.random()*switches.length)]; array.push(Item); } let scrambles = ""; for(i=0; i< 20; i++) { scrambles += array[i]; } document.getElementById("div").innerHTML = scrambles; } so i have function that generates random string so output will be something like R U' B2 R2 L F L2 B U2 B U F' L' B2 R' L D2 U' L2 R
and i want to generate the random letters twice so output will be something like
R U' B2 R2 L F L2 B U2 B U F' L' B2 R' L D2 U' L2 R B R' U' F' D L U2 F' R' B D U F R' L' F U2 D L R i found a solution which is by duplicating the codes like this
function generate() { const notations = [" U", " D", " R", " L", " F", " B"]; const switches= ["", "\'", "2"]; let array = []; let last = ''; let random = 0; for (let i = 0; i < 20; i++) { do { random = Math.floor(Math.random() * notations.length); } while (last == notations[random]) last = notations[random]; let Item = notations[random] + switches[parseInt(Math.random()*switches.length)]; array.push(Item); } let scrambles = ""; for(i=0; i< 20; i++) { scrambles += array[i]; } const notations2 = new Array(" U", " D", " R", " L", " F", " B"); const switches2= ["", "\'", "2"]; let array2 = []; const last2 = ''; const random2 = 0; for (let i = 0; i < 20; i++) { do { random2 = Math.floor(Math.random() * notations2.length); } while (last == notations2[random2]) last2 = notations2[random2]; let Item2 = notations2[random2] + switches2[parseInt(Math.random()*switches2.length)]; array.push(Item2); } let scrambles2 = ""; for(i=0; i< 20; i++) { scrambles2 += array[i]; } document.getElementById("div").innerHTML = scrambles + "<br>" + scrambles2; } but its not efficient, is there a faster way and more efficient way to do this?
i < 40instead ofi < 20i < 40?