Estoy obteniendo datos de una API que devuelve tipos de cambio de divisas de la siguiente manera:
{"EUR_USD":1.044136}
Pude manipular los datos obtenidos usando:
const rate = Object.values(data).splice(11,5);
que devuelve 1.044
Sin embargo, mi próximo problema surge cuando trato de convertir este objeto en un número. Por alguna razón, solo devuelve el primer dígito, por lo que en el caso de "1.044" lo convertiría en "1".
¿Cómo puedo manejar esto? Estoy pensando en tal vez mapear a través de la matriz de tasas y luego analizarlo Flotar todo ...?
const parsedRate = rate.map(i => i).parseFloat();
¿Esto incluso funcionaría?
ok chicos, lo siento por tomar su tiempo y agradezco todas sus respuestas. pero tenía JSON.stringify en la cadena y eso era lo que estaba causando el problema... ¡¡¡LO SENTIMOS!!!
array.map(Number) devolvería una matriz de lo que sea que se esté mapeando convertido a número (suponiendo que sea posible)
Creo que tienes un problema con las diferentes longitudes de las teclas. Tienes que usar Object.values
const data = [{"EUR_NOUSD":"1.044136"}, {"EUR_EURO":"1.15"},{"EUR_CANDIES":"2.333"}] const getValue = currency => Number(Object.values(currency)) console.log(data.map(getValue))
Los datos de ejemplo que ha proporcionado son un simple y antiguo objeto literal de Javascript:
{"EUR_USD":1.044136}
Solo necesita acceder a la(s) tasa(s) de cambio por su nombre. Asumiendo que está en una variable llamada rates
, es solo
const rate = rates.EUR_USD;
para asignar el valor numérico 1.044136
a la rate
variable.
Sin embargo, si tiene una cadena que contiene la respuesta JSON de la API:
"{\"EUR_USD\":1.044136}"
Y está tratando de usar string.splice()
para extraer bits de él, lo está haciendo de manera incorrecta.
Todo lo que tiene que hacer para rehidratar ese cuerpo de respuesta JSON en un objeto es usar JSON.parse()
:
const json = callUpstreamExchangeRateApi(); const rates = JSON.parse(json); const rate = rates.EUR_USD;