Estoy usando una API que me permite recopilar datos sobre países. Si quiero obtener datos sobre idiomas y monedas de diferentes países, hay un problema porque, por ejemplo, las monedas en Polonia tienen
monedas: PLN: {nombre: 'złoty polaco', símbolo: 'zł'}
y para Portuguesa tiene
EUR: {nombre: 'Euro', símbolo: '€'}.
¿Cómo puedo obtener datos sobre monedas por código a continuación sin importar los países? (En el código he escrito 'HAY UN PROBLEMA CON LAS MONEDAS', estos son lugares que tengo reparados).
const btn = document.querySelector('.btn-country'); const countriesContainer = document.querySelector('.countries'); /////////////////////////////////////// const getCountryData = function (country) { const request = new XMLHttpRequest(); request.open( 'GET', `https://restcountries.com/v3.1/name/${country}?fullText=true` ); request.send(); request.addEventListener('load', function () { console.log(this.responseText); const [data] = JSON.parse(this.responseText); console.log(data); const html = ` <article class="country"> <img class="country__img" src="${data.flags.svg}" /> <div class="country__data"> <h3 class="country__name">${data.name.common}</h3> <h4 class="country__region">${data.region}</h4> <p class="country__row"><span>👫</span>${( +data.population / 1000000 ).toFixed(1)} people</p> <p class="country__row"><span>🗣️</span>${ THERE IS A PROBLEM WITH LANGUAGE }</p> <p class="country__row"><span>💰</span>${THERE IS A PROBLEM WITH CURRENCIES}</p> </div> </article> `; countriesContainer.insertAdjacentHTML('beforeEnd', html); countriesContainer.style.opacity = 1; }); }; getCountryData('portugal'); getCountryData('poland');Tienes que hacer cosas bastante ingeniosas para lograr esto. He venido de esta manera, si desea extraerlo directamente de la respuesta de la API:
const currencyName = data[0].currencies[Object.keys(data[0].currencies)[0]].name;Un poco más legible:
const currencies = data[0].currencies; const currenciesKeys = Object.keys(currencies); const currencyName = currencies[currenciesKeys[0]].name;Obtenemos el primer objeto de la matriz recibido y accedemos a la clave de monedas. Luego, obtenemos las subclaves de las monedas como una matriz y accedemos a la primera, y recuperamos la clave de nombre sobre ella.