Reputation: 15016
I'm trying to manipulate the properties in an object like this:
for (property in posts.data) {
property = property+1+",";
output += property;
}
document.write(output);
The properties are numerical: 0, 1, 2 etc.
I want to get the result 1,2,3 in this case. But instead I get 01,11,21, etc... It seems to treat the property as a text-string rather than a number. Why? And what can I do about it?
Upvotes: 3
Views: 126
Reputation: 3758
1.Unary '+' operator converts a string into an integer
for (property in posts.data) { var t = +property + 1; output += t+","; }
2.Javascript's parseInt
method
for (property in posts.data) { var t = parseInt(property, 10)+ 1; output += t+","; }
The second argument in the parseInt function call(radix) will tell the function what numeric system to follow.
Upvotes: 5
Reputation: 6484
You could force the string to and int
for (property in posts.data) {
var v = parseInt(property, 10) + 1;
output += v + ",";
}
Upvotes: 1
Reputation: 19262
Parse
the property
variable in Int
. like parseInt()
for (property in posts.data) {
var p = parseInt(property)+1+",";
output += p;
}
Upvotes: 1
Reputation: 10530
Use parseInt
to convert the property
to integer before adding 1
into it.
Demo: http://jsfiddle.net/mPSnL/
Upvotes: 1