Don P: typecast? string zu integer?

Beitrag lesen

Hallo,

Das addieren läuft allerdings falsch, da id immernoch als string behandelt wird bekomme ich
leider z.B. "15-1 dx:-1" oder z.B. "151 dx:1" raus.

parseInt ist gut und recht, kommt auch mit Hex- und Oktalzahlen zurecht und mit Stings wie "123xy" (ergibt 123), oft wird auch empfohlen 0 zu addieren, aber die einfachste Methode ist immer noch der Plus-Operator: +str konvertiert str zu einer Zahl, in deinem Fall also +id + (+dx) (Klammerung nur zur Sicherheit, damit beim Komprimieren nicht aus Versehen ++dx enststeht, was etwas anderes wäre).

Die ECMAScript-Spezifikation sagt:

11.4.6 Unary + Operator
The unary + operator converts its operand to Number type.
The production UnaryExpression : + UnaryExpression is evaluated as follows:

  1. Evaluate UnaryExpression.
  2. Call GetValue(Result(1)).
  3. Call ToNumber(Result(2)).
  4. Return Result(3).

In Punkt 3 ist die Konvertierung zur Zahl mit ToNumber() vorgeschrieben, und so geschieht es auch.

Gruß, Don P