简体   繁体   中英

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);

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!!!

array.map(Number) 将返回一个数组,该数组包含被映射转换为数字的任何内容(假设可能)

I think you have problem with different length of keys. You have to use 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))

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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM