Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
API Restcountries: obtener nombres de monedas dinámicamente en HTML a través de Javascript

Soy nuevo en Javascript y he estado aprendiendo cómo importar los atributos de un país en un elemento HTML. Algunos de ustedes pueden reconocer este código, es de un tutorial, que ahora está desactualizado. He estado buscando una solución actualizada, pero no pude encontrar ninguna.

Primero tengo la función para obtener los datos:

 const getCountryData = function (country) { fetch(`https://restcountries.com/v3.1/name/${country}`) .then(response => response.json()) .then(data => renderCountry(data[0])); };

Luego llamo a esa función, proporcionando un país getCountryData('czechia') para infundirlo en un elemento como este:

 const renderCountry = function(data, className = '') { const html = ` <article class="country ${className}"> <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">${(+data.population / 1000000).toFixed(1)} people</p> <p class="country__row">${data.fifa}</p> </div> </article> ` countriesContainer.insertAdjacentHTML ('beforeend', html); countriesContainer.style.opacity = 1; }

Esto funciona bien, pero el problema es que al final del HTML, donde ingreso {data.fifa}, quiero tener el nombre de la moneda principal del país. Desafortunadamente, los datos están estructurados de tal manera que para que se muestre el nombre de la moneda, primero tengo que llamarlo por su nombre corto, como se muestra a continuación:

 "currencies": { "CZK": { "name": "Czech koruna", "symbol": "Kč" } },

Si invoco {data.currencies} en la cadena, solo obtendré un objeto vacío. Si lo llamo {currencies.CZK.name}, funciona, pero el problema es que si llamo a Suecia, por ejemplo, no mostrará nada, porque entonces tendría que ser {currencies.SEK.name }. ¿Cómo soluciono esto? ¿Cómo puedo llamar el nombre de una moneda sin tener que incorporar CZK, SEK, USD, EUR, etc. en la variable?

Cualquier ayuda es apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes transformar ese objeto en una matriz:

 const currencyArray = Object.values(data.currencies) console.log(currencyArray[0].name)

Si el país tiene muchas monedas, simplemente cambie el índice de 0 a 1, 2, ...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda