当前位置: 首页 > 知识库问答 >
问题:

ajax-jquery布尔等式表演有趣

满子实
2023-03-14

我有一个api从openweathermap.org请求天气数据

var requestWeatherData = function(ipData){
      $.ajax({
        url: "http://api.openweathermap.org/data/2.5/weather",
        dataType: "json",        
        data: {
          q: ipData.city + ',' + ipData.countryCode,
          appid: "cant say"
        },
        success: function(wthrDetails) {                       
          addWeatherIcon(wthrDetails)             
        },
      });

api的回复示例如下:

{"coord":
{"lon":145.77,"lat":-16.92},
"weather":[{"id":803,"main":"Clouds","description":"broken clouds","icon":"04n"}],
"base":"cmc stations",
"main":{"temp":293.25,"pressure":1019,"humidity":83,"temp_min":289.82,"temp_max":295.37},
"wind":{"speed":5.1,"deg":150},
"clouds":{"all":75},
"rain":{"3h":3},
"dt":1435658272,
"sys":{"type":1,"id":8166,"message":0.0166,"country":"AU","sunrise":1435610796,"sunset":1435650870},
"id":2172797,
"name":"Cairns",
"cod":200}

但当我试图通过上述回复获得天气状况时:

var addWeatherIcon = function(weatherDetails) {
        var weatherType = weatherDetails.weather[0].main.toLowerCase();
        console.log(weatherType); //<-- outputs "clouds"
        console.log(typeof weatherType); //<---- outputs string
        console.log(weatherType == "clouds"); // <-- returns false
}

为什么< code > console . log(weather type = = " clouds ");返回false?这个类是正确的,输出也是正确的,但是仍然返回false。更奇怪的是,有时当网络很慢时,它会返回true?会不会是Ajax需要变慢才能被检测到?。这怎么可能呢?

编辑:我的密码笔:http://codepen.io/nuclearmachine/full/ZKyrVp

共有3个答案

邵阳辉
2023-03-14

天哪,< code >“雷雨”被拼成了< code >“雷雨”。现在,应用程序有时显示正确的原因是因为其他天气模式拼写正确!我觉得自己很蠢,但吸取了教训。上面的问题以云为例,但是我是在我的电脑上测试雷暴的。

姜兴业
2023-03-14

天气详情天气[0].主要.到低案例()==“云”它将只返回真实,请检查您的代码

例如小提琴是

$(document).ready(function(){
var details={  
   "coord":{  
      "lon":145.77,
      "lat":-16.92
   },
   "weather":[  
      {  
         "id":803,
         "main":"Clouds",
         "description":"broken clouds",
         "icon":"04n"
      }
   ],
   "base":"cmc stations",
   "main":{  
      "temp":293.25,
      "pressure":1019,
      "humidity":83,
      "temp_min":289.82,
      "temp_max":295.37
   },
   "wind":{  
      "speed":5.1,
      "deg":150
   },
   "clouds":{  
      "all":75
   },
   "rain":{  
      "3h":3
   },
   "dt":1435658272,
   "sys":{  
      "type":1,
      "id":8166,
      "message":0.0166,
      "country":"AU",
      "sunrise":1435610796,
      "sunset":1435650870
   },
   "id":2172797,
   "name":"Cairns",
   "cod":200
};
alert(details.weather[0].main.toLowerCase()=="clouds");
});

检查一下https://jsfiddle.net/fdxuf7qn/

郎慎之
2023-03-14

尝试:

var weatherType = weatherDetails.weather[0].main.toLowerCase().trim();

某处一定有空间。

 类似资料:
  • 这是标准的惯例,使用而不是来测试一个值是否特别是。 如果您想确定一个值是否完全是(而不仅仅是一个类似true的值),是否有任何理由使用而不是?这在CPython(2. x和3. x)、Jython、PyPy等实现之间是否有所不同? 示例:假设用作要与值或任何其他类似True的值区分的单例值: 如果foo为真,使用

  • 问题内容: 我正在Ajax调用中发送一些数据。值之一是设置为FALSE的布尔值。在Ajax调用的PHP脚本中,始终将其评估为TRUE。有任何想法吗? 在上面的Ajax中调用的脚本vote.php中,我检查了布尔值: 但条件始终满足。 问题答案: 帖子只是文字,文字在php中的评估结果为true。一种快速的解决方法是发送零而不是false。您也可以在PHP中用引号引起来。 然后,您可以传递正确/错误

  • 我开始学习布尔表达式。我正试图找出以下问题: 假设age1、age2和age3是int变量,假设答案是布尔变量。编写一个表达式,当age1小于或等于age2并且age2小于或等于age3时,该表达式将答案指定为true。否则答案应为false。 我已经尝试了一些东西,但对Java来说还是比较陌生的。我能把答案打印出来,但我的数字还是有问题。 这是错误的: 我只是不知道如何解决这个问题,或者代码中到

  • 我有两个实体:类别和具有一对多关系的产品。 如果价格大于100,我如何按产品数量订购类别?类似(这不起作用):

  • 问题内容: 所以我有一个关于考试作业的问题,在这个作业中,我们有一堆布尔表达式,例如: 然后,我们应该编写布尔表达式的值。为此,我使用了三值逻辑,但是当您获得如下所示的布尔表达式时,这将如何应用: 或者 通过三值逻辑可以很容易地找到第一个,但是我如何找出另外两个。 我知道这是一个非常基本的问题,但是我对此仍然是陌生的。 提前致谢 问题答案: 您需要布尔值和的三相真值表: 该表是缩写,依赖于布尔逻辑

  • 问题内容: 在python中,如果您编写类似 如果布尔语句为true,则python似乎返回垃圾邮件,否则返回egg。有人可以解释这种行为吗?为什么表达式不像一个长布尔值那样被求值? 编辑:具体来说,我试图弄清楚为什么该表达式的结果返回“ spam”或“ eggs”的机制。 问题答案: 运算符和短路,这意味着如果仅从对第一个操作数求值就可以得出表达式的结果,则不对第二个操作数求值。例如,如果您具有