Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to convert an array of strings into a number?

I’m fetching data from an API which returns currency exchange rates like so:

{"EUR_USD":1.044136}

I was able to manipulate the fetched data using:

const rate = Object.values(data).splice(11,5);

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

which returns 1.044

However, my next problem comes when trying to parseFloat this object into a number.. for some reason it only returns the first digit so in case of "1.044" it’d convert it into "1".

How can I handle this ? I’m thinking to perhaps map thru the rate array and then parseFloat everything..?

const parsedRate = rate.map(i => i).parseFloat();
would this even work ?

ok guys – sorry for taking your time and I appreciate all your answers! but I had JSON.stringify on the string and that’s what was causing the problem… SORRY!!!

>Solution :

The example data you have supplied is an plain old Javascript object literal:

{"EUR_USD":1.044136}

You just need to access the exchange rate(s) by their name. Assuming it’s in a variable called rates, it’s just

const rate = rates.EUR_USD;

to assign the numeric value 1.044136 to the variable rate.

If, however, you have a string containing the JSON response from the API:

"{\"EUR_USD\":1.044136}"

And you’re trying to use string.splice() to extract bits from it, you are going about it the wrong way.

All you have to do to rehydrate that JSON response body into an object is to use JSON.parse():

const json = callUpstreamExchangeRateApi();
const rates = JSON.parse(json);
const rate  = rates.EUR_USD;
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading