I currently have a select dropdown that shows the numbers 1-10 like so
const options = [
{
label: 1,
value: 1
},
{
label: 2,
value: 2
},
{
label: 3,
value: 3
} // and so on and so forth
];
<select onChange={(e) => {handleChange(e)}}>
{options.map((option) => (
<option value={option.value}>{option.label}</option>
))}
</select>
But I instead would like to make the drop down instead of 1-10, 1- whatever the value of variable N is.
I am new to react and am not really sure what to try honestly.
>Solution :
If you just mean that you want to generate a list of options inline from 1-N without having any backing data (i.e. no options array), you could do something like this:
<select onChange={handleChange}>
{
[...Array(10)].map((_, i) => i + 1)
.map(i => <option key={i} value={i}>{i}</option>)
}
</select>
This essentially:
- Creates an array of 10 elements (which could be any dynamic value you like)
- Calls
.map()to fill it with integers (just using the index of each element + 1 as its new value) - And calls
.map()on that to return the<option>elements