Quiero mostrar el nombre de la moneda de diferentes países. Para hacer esto, uso una API y busco el json en mi archivo JS.
El problema son los diferentes nombres. En este caso "BRL" o "USD" para ingresar los nombres de las monedas.
En este caso, utilicé "BRL", pero quiero poder ingresar cada elemento de moneda de diferentes países. Creo que necesitaría algún tipo de comodín.
Tal vez algunos de ustedes puedan ayudarme sobre cómo manejar este problema.
De hecho, descubrí que hay una versión anterior de la API en la que la moneda se muestra mucho más simple. Así puedo acceder más fácilmente a las monedas de cada país.
En la versión anterior, el json para la moneda de EE. UU., por ejemplo, se vería así
De esa manera, en realidad no necesito ingresar primero los diferentes tipos de monedas, al buscar los datos.
Puedes hacerlo de una manera más simple.
document.querySelector("#currency").innerHTML = Object.values(data[0].currencies)[0].name;
o tal vez esto si quieres mostrar varias propiedades
function displayCountry(data) { data.forEach((item) => { Object.keys(item.currencies).forEach((key) => { document.querySelector("#currency").innerHTML = item.currencies[key].name; }); }); };
Si está llamando a la API con una abreviatura de moneda como "USD" y "BRL", puede colocarlos en una matriz como esta:
const arrayOfCurrencies = ["USD", "BRL", ...];
Cuando los muestra en el DOM, puede usar esos valores como propiedades dinámicas de la respuesta de esta manera:
for(let abbr of arrayOfCurrencies) { document.querySelector("#currency").innerHTML = data[0].currencies?.[abbr]?.name ?? fallbackString; }