Search code examples
javascriptarraysobjectparseint

Changing properties of a Javascript object from string to int


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

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?


Solution

  • 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)
    }