JavaScript:如何使If语句完成两件事

JavaScript:如何使If语句完成两件事,javascript,Javascript,下面是一段代码的摘录: if (lightColour === fileArray[0]) { lightColour = "RedOrangeLight.jpg"; lightTimer = "5000"; } 假设LightColor等于fileArray[0],我可以对代码做什么,以便LightColor等于redorRangeLight.jpg,并且lightTimer也被赋值为5000 -编辑- 好吧,很明显,这不是很有用或有用。我将在下面发布我的完整代码: <!D

下面是一段代码的摘录:

if (lightColour === fileArray[0]) {
   lightColour = "RedOrangeLight.jpg";
   lightTimer = "5000";
}
假设LightColor等于fileArray[0],我可以对代码做什么,以便LightColor等于redorRangeLight.jpg,并且lightTimer也被赋值为5000

-编辑-

好吧,很明显,这不是很有用或有用。我将在下面发布我的完整代码:

<!DOCTYPE html>
<html>
<body>

<h1>Changing Traffic Lights w/ Arrays</h1>

<img id="trafficLight" src="RedLight.jpg">

<script>

var lightTimer = "1000"
var lightColour = trafficLight.src

var fileArray = ["RedLight.jpg",
                 "RedOrangeLight.jpg",
                 "GreenLight.jpg",
                 "OrangeLight.jpg"];

function lightChange() {

if (lightColour === fileArray[0]) {
   lightColour = "RedOrangeLight.jpg";
   lightTimer = 5000;
} else if (lightColour === fileArray[1]) {
   lightColour = "GreenLight.jpg";
   lightTimer = 1000;
} else if (lightColour === fileArray[2]) {
   lightColour = "OrangeLight.jpg";
   lightTimer = 5000;
} else {
  lightColour = "RedLight.jpg";
  lightTimer = 1000;
}

var light = document.getElementById('trafficLight');
light.src = lightColour

}

setInterval(lightChange, lightTimer);

</script>

</body>
</html>

任何关于我做错了什么的指示?

如果您想要5000的值,请删除它周围的引号。如果将变量设置为5000,则该变量将是字符串而不是数字。删除引号将使其成为一个数字

代码应该是这样的

lightTimer=5000

相当于

lightTimer=5000

您只定义了一次setInterval超时-在函数之外。这就是为什么它不会用新的if/else值更新

解决方案: 在函数中使用setTimeout更新超时值: var light=document.getElementById'trafficLight';//把它放在这里!! var-lightTimer=1000; var lightcolor=trafficLight.src; var fileArray=[ //placehold.it/50x50/f00,//红色 //placehold.it/50x50/f40,//redorange //placehold.it/50x50/3f0,//绿色 //placehold.it/50x50/f80//橙色 ]; 功能光变{ 如果LightColor===fileArray[0]{ LightColor=//placehold.it/50x50/f40;//redorange lightTimer=1000; }如果LightColor==fileArray[1],则为else{ LightColor=//placehold.it/50x50/3f0;//绿色 lightTimer=5000; }如果LightColor==fileArray[2],则为else{ LightColor=//placehold.it/50x50/f80;//橙色 lightTimer=1000; }否则{ LightColor=//placehold.it/50x50/f00;//红色 lightTimer=5000; } light.src=lightcolor //改为在此处使用setTimeout setTimeoutlightChange,lightTimer; } lightChange;//开始 更换带有阵列的交通灯
好没错,你的代码有什么不起作用的?这似乎是对的哦对。。。所以我正确地完成了这部分代码?你能解释一下5000作为字符串到底有什么错吗?如果你想让它成为一个字符串,这很好,但是如果它只是一个数字,如果它是一个值,那么变量可以更容易地操作。从声音上看,5000不起作用。setInterval可以将超时参数4000识别为ms,因此它根本不重要。