#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. Это сработало для меня.