循环时在数组中分配新变量的Javascript
//我试图使数组中的每个元素的颜色都被指定为不同的颜色,但是当我运行此命令时,一些元素被更改为颜色名称,而另一些则没有,切换是否会更好,如果是,如何循环时在数组中分配新变量的Javascript,javascript,arrays,random,Javascript,Arrays,Random,//我试图使数组中的每个元素的颜色都被指定为不同的颜色,但是当我运行此命令时,一些元素被更改为颜色名称,而另一些则没有,切换是否会更好,如果是,如何 colors = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; function randomColor() { //fills the array with a number from 1 - 16 for (let i of colors) { colors[i] = Math.floo
colors = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
function randomColor() { //fills the array with a number from 1 - 16
for (let i of colors) {
colors[i] = Math.floor(Math.random()*15+1);
if (colors[i] === 1) {
colors[i] = "red";
}
else if (colors[i] === 2){
colors[i] = "blue";}
else if (colors[i] === 3){
colors[i] = "yellow";}
else if (colors[i] === 4){
colors[i] = "orange";}
else if (colors[i] === 5){
colors[i] = "purple";}
else if (colors[i] === 6){
colors[i] = "pink";}
else if (colors[i] === 7){
colors[i] = "green";}
else if (colors[i] === 8){
colors[i] = "gray";}
else if (colors[i] === 9){
colors[i] = "black";}
else if (colors[i] === 10){
colors[i] = "white";}
else if (colors[i] === 11){
colors[i] = "darkblue";}
else if (colors[i] === 12){
colors[i] = "darkgreen";}
else if (colors[i] === 13){
colors[i] = "darkyellow";}
else if (colors[i] === 14){
colors[i] = "darkpurple";}
else if (colors[i] === 15){
colors[i] = "lightgreen";}
else if (colors[i] === 16){
colors[i] = "lightblue";}
else { colors[i] === "clear";}
}
colors[0] = Math.floor(Math.random()*15+1);
return colors;
}
randomColors();
一个for…of循环将遍历数组中的元素,而不是索引。您将
i
视为索引而不是元素。相反,您可以将循环的循环的更改为常规for
循环,以便循环阵列的索引:
函数randomColor(colors){//用1-16之间的数字填充数组
对于(设i=0;i console.log(随机颜色(颜色))代码>谢谢,我需要一个循环来不断地更新它们,将它实现到我正在做的事情中,现在它正在工作。@DrewSandler不必担心下面的答案看起来不错。我只是想知道你打算什么时候更新colors[0]=Math.floor(Math.random()*15+1)代码>要成为一种颜色?看起来您的代码从未尝试将其更改为颜色。当想出一个解决方案时,试着考虑这样的事情。