Could someone help with what is probably a simple bit of code, i’m struggling to figure out the areas with //
var myArray = [1,2,3,4]; //Setting the array.
if(selectedIndexCount == 1) {
// Pick Number 2,3 or 4 from myArray
} else if (selectedIndexCount == 2) {
// Pick Number 1,3 or 4 from myArray
} else if (selectedIndexCount == 3) {
// Pick Number 1,2 or 4 from myArray
} else if (selectedIndexCount == 4) {
// Pick Number 1,2 or 3 from myArray
}
I’m assuming selectedIndexCount is already being set somewhere earlier in your script?
Here’s a complete, streamlined solution which works for me. It uses underscore syntax to reduce the amount of repetition that you might otherwise need:
var selectedIndexCount = 1; // I'm setting this manually to help me test!
var myArray = [1,2,3,4]; // Setting the array.
var arrayWithoutSelectedIndex = _.without(myArray, selectedIndexCount); // remove selectedIndex from array
console.log(arrayWithoutSelectedIndex); // If selectedIndexCount is 1, then this will output [2, 3, 4]
var pickedNumber = _.sample(arrayWithoutSelectedIndex); // randomly pick one of the remaining values
console.log(pickedNumber); // If selectedIndexCount is 1, this will randomly be set to 2, 3 or 4
Glad it helped! That’s part of the fun of coding - writing a solution which works (which your version would have, assuming you were then going to randomly select a value from setChoice) and then looking for ways to refactor it to make it more readable / less repetitive.
It’s worth bookmarking the documentation for the underscore syntax as it has loads of useful little helpers that can dig you out of problems like this
Javascript is a beautiful language for playing with objects and arrays , see lodash library and array prototypes it will have easy methods available for you