Himmators
Himmators

Reputation: 15016

Mathematical manipulation on object in javascript

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

Answers (4)

Ashwin Krishnamurthy
Ashwin Krishnamurthy

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

leonm
leonm

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

Talha
Talha

Reputation: 19262

Parse the property variable in Int. like parseInt()

for (property in posts.data) {
    var p = parseInt(property)+1+",";
    output += p;
 }

Upvotes: 1

codef0rmer
codef0rmer

Reputation: 10530

Use parseInt to convert the property to integer before adding 1 into it.

Demo: http://jsfiddle.net/mPSnL/

Upvotes: 1

Related Questions