As a JS novice I need some help with the following: I want to create a 3-steps little program:
- let user choose list from a selectbox (fruit or vegetables)
- let user choose the number of items (x) he wants to see
- show x items of fruit or vegetables
As you can see, step 2 and 3 are working just fine, My question is about step 1:
how can I pass the selected option in as an argument in the function, just as the second argument (number of elements) is set by the number from the users input.
All help is welcome. Thank you in advance.
// The arrays to choose
var fruit = ['Apple', 'Banana', 'Mango', 'Apricot'];
var vegetable = ['Brussels sprout', 'Broccoli', 'Potato', 'Tomato']
///////////////////// RANDOM ARRAY ELEMENT SELECTION
function getRandomArrayElements(arr, a) {
var shuffled = arr.slice(0), i = arr.length, min = i - a, temp, index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
// use an eventlistener for the click event
var genElementsdBtn = document.getElementById('genBtn');
genElementsdBtn.addEventListener('click', getElements, false);
function getElements() {
document.getElementById('result').innerHTML =
getRandomArrayElements(fruit, a.value).join(" ");
/* document.getElementById('divalert').className = 'show'; */
}
.wrapper {width:320px; margin: 0 auto}
select, label, button, input, div {
width:100%;
height:45px;
margin:16px 0;
}
<div class="wrapper">
<select id="selectList">
<option value="">choose your array</option>
<option value="fruit" id="fruit">fruit</option>
<option value="vegetables" id="vegetables">vegetables</option>
</select>
<label>select number of random elements from the chosen list</label>
<input type="number" placeholder="set a number" id="a"><br>
<button id='genBtn' type='button'>generate random array elements</button>
<div id="result"></div>
</div>