I have a list like this
JavaScript
x
18
18
1
this.days = [
2
{ key: 0, text: '0 Day', value: 0 },
3
{ key: 1, text: '1 Day', value: 1 },
4
{ key: 2, text: '2 Days', value: 2 },
5
{ key: 3, text: '3 Days', value: 3 }
6
];
7
8
//I use the list as options for drop down
9
10
<Dropdown
11
name="listOfDays"
12
placeholder="Days"
13
selection
14
options={this.days}
15
value={this.state.listOfDays}
16
onChange={this.handleChange}
17
/>
18
My problem is, I want to set the maximum days of the list from a configuration so sort of like this
JavaScript
1
7
1
let CONFIG_MAX_SOMETHING = 5;
2
this.days = [
3
for(let i = 0; i < CONFIG_MAX_SOMETHING; i++) {
4
{ key: i , text: i + 'Day', value: i }
5
}
6
]
7
I know this seems an easy thing to implement but Im new to react and cannot seem to find a similar question. Thanks
Advertisement
Answer
A common way is to use Array.prototype.push
to populate such an array:
JavaScript
1
8
1
let CONFIG_MAX_SOMETHING = 5;
2
3
this.days = [];
4
for(let i = 0; i < CONFIG_MAX_SOMETHING; i++) {
5
this.days.push({ key: i , text: i + (i === 1 ? ' Day' : ' Days'), value: i })
6
}
7
8
console.log(this.days);
Or you could use array APIs such as Array.from
to dynamically generate such an array directly.
JavaScript
1
7
1
let CONFIG_MAX_SOMETHING = 5;
2
3
this.days = Array.from({ length: 5 }, (_, i) => (
4
{ key: i , text: i + (i === 1 ? ' Day' : ' Days'), value: i }
5
));
6
7
console.log(this.days);