获取对象内部的索引

时间:2018-05-09 02:59:08

标签: javascript jquery object indexing

我使用此https://api.coinmarketcap.com/v2/ticker/?limit=10 API查看不同加密货币的价格。

我的最终目标是从上到下循环,并获得具有相应价格的货币标题。但是,似乎我无法在"数据"中得到对象的索引。宾语。我无法用[]选择它,因为它不包含在数组中。

如果您查看https://api.coinmarketcap.com/v2/ticker/?limit=10,您会注意到"数据中的第三个项目" object是一个包含Ripple货币信息的对象。

如何仅从索引的值中单独获取此对象?

我顺便使用jQuery,访问这样的API:

$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) {

});

4 个答案:

答案 0 :(得分:1)

由于响应是包含data作为另一个对象的对象,因此您可以使用for...of循环遍历集合并应用逻辑。

以下是迭代并打印货币名称和价格的演示。

$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
  for (let [_, value] of Object.entries(response.data)) {
    console.log(`Currency: ${value.name}, Price: $${value.quotes.USD.price}`);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

您可以获取对象的所有键,然后迭代到它,比较货币的名称。

&#13;
&#13;
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) {
var objkeys = Object.keys(param.data);
objkeys.forEach(function(item){
  if(param.data[item].name==='Ripple'){
    console.log(param.data[item])
  }
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以使用Object.values将对象转换为数组。要通过数组循环,您可以使用forEach

&#13;
&#13;
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
  Object.values(response.data).forEach(o => {
    console.log(o.name, o.quotes.USD.price);
  })
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

如果您想查找特定的name,可以使用find

&#13;
&#13;
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
  let toFind = 'Ripple';
  let result = Object.values(response.data).find(o => o.name === toFind);

  console.log(result.name, result.quotes.USD.price);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您可以使用JSON.parse()方法解析对象中的JSON响应。之后迭代对象。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse