【发布时间】:2019-07-03 20:20:10
【问题描述】:
[关闭,因为这两个答案都适用于这个例子,谢谢!]
我正在从动态 JSON 文件中获取值(即通过 ESP8266 从传感器获取其值作为数组),并且我试图为传感器的每个值获取不同的词。但是当我尝试这样做时,条件对多个语句的计算结果为 true。
我需要条件帮助来获取每个值的单词,例如,如果我得到“25”作为值,我需要只显示单词“sad”,而不是单词“anxious”或“happy” .如果我得到值“37”,我只想显示“快乐”。
代码如下:
if (val0 > 40){
fill(255,0,0);
textSize(15);
text('anxious',width/2-50,70);
} else if (val0 > 35) {
fill(255,200,0);
textSize(15);
text('happy',width/2-50,70);
} else if (val0 > 20){
fill(0,0,255);
textSize(15);
text('sad',width/2-50,70);
} else {
fill(255);
textSize(15);
text('nothing',width/2-50,70);
}
如您所见,我是 js 的新手,所以请指导我一点!
【问题讨论】:
-
您当前的代码做了哪些不受欢迎的事情?可以发minimal reproducible example吗?
-
当条件评估为真时,我无法超越“悲伤”,但我需要有不同的状态,所以如果我得到 40,我不能得到“焦虑”,因为它仍然存在真的很“悲伤”。
-
通过引入一个“边界”数组 (
[(-1), 0, 20, 35, 40 (,very high value)]) ..并循环它; -
我看不出写的代码有什么问题。每次运行此代码时,它只会执行其中一个分支(但请注意,如果
val0大于 40,它只会评估第一个分支)。如果它真的像你描述的那样表现,或者对控制流有某种误解,这里可能还有其他事情发生。正如CertainPerformance 所说,请提供一个MCVE。
标签: javascript arrays if-statement conditional