我想回圈陣列并按特定順序為每個陣列元素分配顏色。
首先,五十、九等應該是紅色的。
第二、第六、第十等應為綠色。
第三、第七、第十一等應為藍色。
四、八、十二等應為黃色。
鏈接到小提琴游樂場
const colors = ['red', 'green', 'blue', 'yellow'];
const arr = [1, 'a', 3, 'b', 55, 69, 71, 8, 91, 10];
let color;
arr.forEach((el, i) => {
switch (i) {
case i % 1:
color = 'red';
break;
case i % 2:
color = 'green';
break;
case i % 3:
color = 'blue';
break;
case i % 4:
color = 'yellow';
break;
default:
color = 'red';
break;
}
console.log('color:', el, i, color);
});
uj5u.com熱心網友回復:
您可能可以避免這樣的開關:
const colors = ["red", "green", "blue", "yellow"];
const arr = [1, "a", 3, "b", 55, 69, 71, 8, 91, 10];
let color;
arr.forEach((el, i) => {
color = colors[i % colors.length];
console.log("color:", el, i, color);
});
i % colors.length 給你顏色索引
提示:您可以向陣列添加更多顏色,它仍然有效
uj5u.com熱心網友回復:
您需要進行一些更改。 switch(i)應該是switch ((i 1) % 4) ,這樣你就可以打開index 1 mod 4(plus 1 這樣你就不會 mod' on 的計算運算式0,這是第一個索引,這樣你就可以獲得可用的結果)。此外,您的案例應該是case 1:,case 2:等。 看看下面:
const colors = ['red', 'green', 'blue', 'yellow'];
const arr = [1, 'a', 3, 'b', 55, 69, 71, 8, 91, 10];
let color;
arr.forEach((el, i) => {
switch ((i 1) % 4) {
case 1:
color = 'red';
break;
case 2:
color = 'green';
break;
case 3:
color = 'blue';
break;
case 0:
color = 'yellow';
break;
default:
color = 'red';
break;
}
console.log('color:', el, i, color);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331429.html
標籤:javascript 数组 反应
