Question: 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?

Answer: 
[parseInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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)
}

```
All you did was the conversion, but you missed the assignment: 

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

```

The `parseInt` function returns the int value, it doesn't change the input variable. 

Another thing - if you need the total number to be float you should use the `parseFloat` function and not the `parseInt`.