【问题标题】:API won't take concatenated inputAPI 不会接受串联输入
【发布时间】:2018-01-29 15:59:52
【问题描述】:

我正在使用货币转换 API (http://fixer.io/) 进行测试,现在我只是调用 API 来查找基础货币的汇率。现在我已经在 API url 中硬编码了基础货币。 我能够获得汇率对象,但我无法获得与基础货币相对应的特定汇率,例如,如果基础货币是美元,我正在查看日元汇率,但它没有显示价值。

我正在尝试仅使用 JQuery 来实现这一点。

var link1 = "https://api.fixer.io/latest?base=USD";

 $.ajax({
  type: "GET",
  url: link1,
  success: function(rates) {
   $.each(rates, function(i, exchangeRates) {
       if(exchangeRates+"."+ "JPY"){
        var z = exchangeRates+"."+"JPY"; //This concat is not working
        console.log(z);
      }
      else{
       console.log("error");
      }
  });
}
});

我在这里做错了什么?

【问题讨论】:

  • 在你做concat之后,z等于什么?
  • if(exchangeRates+"."+ "JPY") 应该做什么?
  • 它给出了日元的兑换价值。
  • 你应该看看:MDN: Working with objects
  • 它基本上检查货币,即循环中的日元,如果匹配,则给出价值

标签: javascript jquery api


【解决方案1】:

首先rates是一个对象,所以你需要使用括号符号来按键访问它。您不能只是将字符串附加到变量名并将其用作访问器。

其次,您不需要遍历返回的数据,因为它是一个嵌套对象。试试这个:

var link1 = "https://api.fixer.io/latest?base=USD";
var targetCurrency = 'JPY';

$.ajax({
  type: "GET",
  url: link1,
  success: function(response) {
    var rate = response.rates[targetCurrency]; // note bracket notation here
    console.log(rate);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多