我的(javascript)API出现问题。当我使用coinmarketcap API(https://api.coinmarketcap.com/v1/ticker)时。至于比特币的“ max_supply”,它的文本为“ 16865112.0”。这是个问题。我想自动将逗号放在16,865,112.0之类的数字中。

例如,如果数据ID是以太坊(没有最大供给),则我为∞。那个有效。

原版的:



$.get("https://api.coinmarketcap.com/v1/ticker/", function(data, status) {
  for (var i = 0; i < data.length - 1; i++) {
    if (data[i].id == "bitcoin") {
      $("#max_supply").html(data[i].max_supply == null ? '∞' : data[i].max_supply);
    }
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="max_supply"></div>





这使我的输出为“ 21000000.0”

这就是我到目前为止



$.get("https://api.coinmarketcap.com/v1/ticker/", function(data, status) {
  for (var i = 0; i < data.length - 1; i++) {
    if (data[i].id == "bitcoin") {
      $("#max_supply").html(Number(data[i].max_supply).toLocaleString('en-US') == null ? '∞' : data[i].max_supply.toLocaleString('en-US'));
    }
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="max_supply"></div>





这没有给我输出。

有什么建议么?

最佳答案

首先,您应该在for循环中取消-1,否则您将丢失最后一个项目。

下面的三进制maxSupply = maxSupply == null ? '∞' : numberWithCommas(maxSupply)表示如果最大供应量为null(对于JSON中的当前硬币),则将maxSupply设置为,否则将maxSupply var设置为numberWithCommas(maxSupply)

我从https://stackoverflow.com/a/2901298/1309377获得了numberWithCommas(...)函数,以帮助您按要求的格式设置数字的逗号。

我也切换到了.append()而不是.html(),否则您将被自己重写。



$.get("https://api.coinmarketcap.com/v1/ticker/", function(data, status) {

  for (var i = 0; i < data.length; i++) {
    var coin = data[i].id;
    var maxSupply = data[i].max_supply;
    maxSupply = maxSupply == null ? '∞' : numberWithCommas(maxSupply)
    $("#max_supply").append(coin + ": " + maxSupply + "<br/>");
  }

});

function numberWithCommas(x){
  return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>Max Supply</span>
<div id="max_supply"></div>

关于javascript - JavaScript格式编号API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48813743/

10-12 21:43