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:
let n1 = parseInt('19', 10);
let n2 = parseInt('+19', 10);
let n3 = parseInt('-19', 10);
let n4 = parseInt('19 Grad', 10);
let n5 = parseInt('19.1', 10);
let n6 = parseInt('019', 10);
let 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:
let n1 = parseInt('Nur Text', 10);
let 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'.

Beispiel: 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 substr den Teilstring nach dem Plus-Zeichen. Bestimme mit parseInt aus diesem Teilstring den zweiten Summanden.
function add(s) {
  let summand1 = parseInt(s, 10);
  let indexPlus = s.indexOf('+');
  let sAfterPlus = s.substr(indexPlus + 1);
  let summand2 = parseInt(sAfterPlus, 10);
  return summand1 + summand2;
}

loving