javascript - 找不到此 JS 函数中的错误

标签 javascript

我正在尝试创建一个函数,当输入在一组给定的范围内时返回特定的字符串。用例:我想根据给定城市的温度更改网页的颜色。我有一个函数,它接受一个数字并返回其中一种颜色变体。但是,它似乎总是返回“粉红色”。有帮助吗?

function colorTemperature(temperature){
      if(temperature <= -10){
        colorTemperatureResult = 'midnightblue';
      }
      if(temperature > 0 && temperature <= 10)
      {
        colorTemperatureResult = 'darkblue';
      }
      if(temperature > 10 && temperature <= 20)
      {
        colorTemperatureResult = 'royalblue';
      }
      if(temperature > 20 && temperature <= 30)
      {
        colorTemperatureResult = 'steelblue';
      }
      if(temperature > 30 && temperature <= 40)
      {
        colorTemperatureResult = 'deepskyblue';
      }
      if(temperature > 40 && temperature <= 50)
      {
        colorTemperatureResult = 'lightblue';
      }
      if(temperature > 50 && temperature <= 60)
      {
        colorTemperatureResult = 'lightyellow';
      }
      if(temperature > 60 && temperature <= 70)
      {
        colorTemperatureResult = 'lemonchiffron';
      }
      if(temperature > 70 && temperature <= 80)
      {
        colorTemperatureResult = 'khaki';
      }
      if(temperature > 80 && temperature <= 90)
      {
        colorTemperatureResult = 'orange';
      }
      if(temperature > 90 && temperature <= 100)
      {
        colorTemperatureResult = 'gold';
      }
      if(temperature >= 100)
      {
        colorTemperatureResult = 'orangered';
      }
      else {
        colorTemperatureResult = 'pink';
      }
      return colorTemperatureResult;
    }

此外,如果有更简单的方法可以在没有所有这些条件的情况下执行此功能,请告诉我。我知道输入正确传递,但无法找出逻辑中哪里出错了。

谢谢!

最佳答案

您的 if 表达式都没有 else if 来防止它们在继续执行时被不必要地求值。

将您的字符串分配从 colorTemperatureResult = 'whatever' 更改为 return 'whatever' 它将起作用。

但是您的代码不必要地复杂,您也可以完全消除 > 比较:

function colorTemperature(temperature) {
  if(temperature <= -10) {
      return 'midnightblue';
  } else if(temperature <= 10) {
      return 'darkblue';
  } else if(temperature <= 20) {
      return 'royalblue';
  } else if(temperature <= 30) {
      return 'steelblue';
  } else if(temperature <= 100) {
  // snip
  } else if(temperature <= 110) {
      return 'gold';
  } else {
      return 'orangered'
  }
}

关于javascript - 找不到此 JS 函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243884/

相关文章:

javascript - 如何在 Javascript 中定时刷新/重新加载页面而不出现 POSTDATA 警告?

javascript - 捕获VLC Webplugin的MediaPlayerPlaying事件

Javascript 对象返回未定义

javascript - 所有带有类的按钮的 CSS 选择器

javascript - express .js : reverse proxying different web app along with assets

javascript - 使用 CSS 类或渲染状态更改来提高效率?

javascript - 如何统一js文件,什么时候是关于jQuery插件

javascript - 以有效的方式检查多个变量是否不为 null、undefined 或 empty

javascript - NativeScript:模态属性未定义

javascript - Vue.js 在挂载和重新启动功能中运行代码