I have such a task. I want to create 15 divs and I want to take the background colors of these divs from the array. But here only divs are created according to 5 colors, the color of the others is undefined. How can I cycle the colors?
let color = ["yellow", "green", "red", "blue", "orange"];
for (var i = 0; i <= 15; i ) {
document.write("<div style='background:" color[i] "'></div> ");
}
CodePudding user response:
Simple as it is, use modulo arithmetic.
Instead of color[i]
, use color[i % color.length]
, and it will work as you want.
Taking the remainder from the division of the current index by the length of the array will bind it to the range [0;length), which can allow you to repeat all array indices infinitely many times. See for yourself:
i | i % 5 |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 0 |
6 | 1 |
7 | 2 |
8 | 3 |
9 | 4 |
10 | 0 |
11 | 1 |
12 | 2 |
13 | 3 |
14 | 4 |
15 | 0 |
CodePudding user response:
try this
let color = ["yellow", "green", "red", "blue", "orange"];
for (var i = 0; i <= 15; i ) {
document.write("<div style='background:" color[i % (color.length)] "'></div> ");
}