Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.

parseInt

Häufig möchte man eine Zahl, die als String vorliegt, in eine Zahl vom Typ Number umwandeln. Für das Umwandeln von ganzen Zahlen (..., -2, -1, 0, 1, 2, ..) gibt es in JavaScript die Funktion parseInt. Folgende Beispiele geben 19 oder -19 zurück:
var n1 = parseInt('19', 10);
var n2 = parseInt('+19', 10);
var n3 = parseInt('-19', 10);
var n4 = parseInt('19 Grad', 10);
var n5 = parseInt('19.1', 10);
var n6 = parseInt('019', 10);
var n7 = parseInt(' 19', 10);
Neben dem direkten Einlesen von ganzen Zahlen mit oder ohne Vorzeichen (n1, n2, n3) beherrscht parseInt auch einige komplexe Fälle. Nicht-numerische Zeichen nach der ganzen Zahl (n4, n5) sowie Nullen (n6) und Leerzeichen (n7) vor der Zahl werden ignoriert.

In allen Beispielen ist der zweite an parseInt übergebene Parameter 10. Dieser Paramter gibt an, zu welcher Basis die Zahl interpretiert werden soll. 10 steht für das übliche Dezimalsystem. Läßt man den zweiten Paramter weg, wird normalerweise das Dezimalsystem als Default verwendet. Da es aber von dieser Regel Ausnahmen gibt und diese Ausnahmen in verschiedenen Browsern auch noch unterschiedlich gehandhabt werden, sollte man immer die Basis mit angeben!

Kann parseInt keine Zahl einlesen, gibt sie den Wert NaN (engl.: Not a Number) zurück:
var n1 = parseInt('Nur Text', 10);
var n2 = parseInt('Nr. 8', 10);
Im ersten Fall ist überhaupt keine Zahl vorhanden. Im zweiten Fall gibt es nicht-numerische Zeichen vor der eigentlichen Zahl. Auch das ist nicht zulässig und führt zur Rückgabe NaN.

Eine ausführliche Dokumentation von parseInt findest du bei Mozilla web docs.

Aufgabe

Schreibe eine Funktion add, die einen String mit einer Additionsaufgabe entgegennimmt und die das Ergebnis der Addition als Zahl zurückgibt. Es sollen zwei natürliche Zahlen addiert werden. Die Additionsaufgabe ist ein String der Form '102+17'. Der Aufruf add('102+17') soll die Zahl 119 zurückgeben.
Bestimme mit parseInt den ersten Summanden. Bestimme mit indexOf die Position des Plus-Zeichens. Bestimme mit substring den Teilstring nach dem Plus-Zeichen. Bestimme mit parseInt aus diesem Teilstring den zweiten Summanden.
var add = function(s) {
  var summand1 = parseInt(s, 10);
  var positionPlus = s.indexOf('+');
  var sNachPlus = s.substring(positionPlus + 1);
  var summand2 = parseInt(sNachPlus, 10);
  return summand1 + summand2;
};