Необходимо напечатать страны с использованием доллара США в API Restcountries

#javascript #api #filter

Вопрос:

Я попытался напечатать страны, используя доллар США, в API Restcountries ( https://restcountries.com/v3.1/all ). Я пробовал, но в качестве вывода ничего не отображается:

Мой код выглядит следующим образом

 const getUSDollar = () => {
  const xhr = new XMLHttpRequest();
  xhr.open("GET", "https://restcountries.com/v3.1/all", true);

  xhr.responseType = "json";

  xhr.onload = () => {

    const data = xhr.response;
    const datas = data.filter((value) => {
      for (var i in value.currencies.name.USD) {
        if (i === "Unites States Dollar") {
          return true;
        }
      }
    }).map((value) => value.name);
    console.log(datas);
  }
  xhr.send();
};

getUSDollar();
 

Пожалуйста, разберитесь в этом.

Комментарии:

1. Можете ли вы поделиться ответом/данными из api?

2. @Энди, Прости! новенький здесь

3. @DanielprabhakaranN Мне нужно напечатать страны в долларах США. Ссылка на API работает.

4. Можете ли вы попробовать это for (var i in value.currencies["USD"].name)...

5. @да валюты многих стран не являются долларами США

Ответ №1:

Можете ли вы попробовать это

   xhr.onload = () => {
    const data = xhr.response;
    const datas = data
      .filter((item) => item?.currencies?.USD?.name === "United States dollar")
      .map((value) => value.name);
    console.log('datas', datas);
  };
 

Как предположил @eglease, вам не нужно проверять имя, вы можете просто проверить наличие долларов США и отфильтровать объект следующим образом,

   xhr.onload = () => {
    const data = xhr.response;
    const datas = data
      .filter((item) => item?.currencies?.USD)
      .map((value) => value.name);
    console.log('datas', datas);
  };
 

Это сработало для меня. Попробуйте прокомментировать, это то, чего от вас ждут, или нет?
введите описание изображения здесь

Комментарии:

1. Это сработало для меня.