Как я могу выбрать текущую цену на криптовалюту? Получите монету с ID из API (CoinGecko API) - PullRequest
0 голосов
/ 14 июля 2020

Я не уверен, как мне выбрать текущую цену монеты, когда я получаю такой ответ: enter image description here

So in this case I have accesed to a current price of bitcoin like this:

getCoin() {
   return this.cryptoAPIService.getCoinById(this.id).subscribe(res => {
     console.log(res);
     this.currentPrice = this.numberWithCommas(res[22].current_price.usd);
 });

but when I click on ETHEREUM, response look like this:

введите описание изображения здесь

теперь я получаю сообщение об ошибке, потому что мне нужно выбрать текущую цену ethereum следующим образом: res[23].current_price.usd. Некоторые из них имеют текущую цену в индексе 24, поэтому я не уверен, как я могу выбрать текущую цену для всех с помощью одной функции, каких-либо предложений?

EDIT:

getCoinById(id: any) {
    return this.http.get("https://api.coingecko.com/api/v3/coins/"+id).
    pipe(
    map(data => Object.keys(data).map(k => data[k]))
    );
  }

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Вы сопоставляете данные с массивом, не делайте этого.

Удалите эту строку:

  map(data => Object.keys(data).map(k => data[k]))
0 голосов
/ 14 июля 2020

Используйте оператор switch для условной обработки различных типов ответов.

switch (res[0]) {
  case 'bitcoin':
    // ...
    break;
  case 'ethereum':
    // ...
    break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...