HerrMann HerrMann - 1 year ago 69
Javascript Question

Changing properties of a Javascript object from string to int

I have an array of objects with three properties each (year, total, per_capita).

0: Object
per_capita: "125.8"
total: "1007.2"
year: "2009"

Those properties are strings and I want to create a loop that goes through the array and converts them to int.
I tried the following loop:

for (i=0; i<data.length; i++){
parseInt(data[i].year, 10)
parseInt(data[i].total, 10)
parseInt(data[i].per_capita, 10)

However when I do typeof(data[0].total) it says its a string.
I am having problems later in the program and I think it is because the values cannot be computed properly because they are not the right type.
Anyone have an idea where the problem is?

Answer Source

parseInt does not mutate objects but parses a string and returns a integer. You have to re-assign the parsed values back to the object properties.

for (i=0; i<data.length; i++){
    data[i].year = parseInt(data[i].year, 10)
    data[i].total = parseInt(data[i].total, 10)
    data[i].per_capita = parseInt(data[i].per_capita, 10)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download