Zahlen per .push zu einem Array hinzufügen

  • Liebe Community,

    ich bin ganz neu, sowohl hier im Forum, als auch mit Javascript und dem Webdeveloping allgemein. Seht mir somit die ein oder andere Frage auf die eine naheliegende oder gar triviale Antwort zu folgen hat bitte nach.

    Folgendes Problem quält mich und lässt mich bereits seit Stunden keine Lösung finden. Auch die Suche im Internet wie auch hier im Forum brachte mich nicht weiter:

    Wie füge ich mittels einer Variablen, die durch ein Input-Feld 'bedient' wird, mithilfe von push. Zahlen als Zahlen und nicht als string, also umgeben von "" in ein Array ein?
    Ich hoffe ich konnte mein Problem ausreichend schildern.
    Im Grunde geht es mir darum mit diesen Zahlen aus dem Array weiterrechnen zu können. Diese sollen jedoch vom Nutzer kommen, der seine Werte in das Input-Feld eingibt.
    Wenn ich so z.B., wenn diese Zahlen eben als string zwischen den "" sind, die Werte addieren möchte, werden sie einfach aneinandergereiht. Also "5"+"5"="55", etc. ...

    Ich danke euch im Voraus für Bemühungen aller Art.


    Hier der Code:


  • Bin mir jetzt nicht sicher, aber durch array. Push werden die "" immer dazu gefügt.

    Wenn man den Array mit Strings zusammen bauen würde ginge es auch ohne "".

    Aber ist ja eigentlich auch egal, zum Zusammenrechnen gibt es parseInt der deine (String zahlen) als Zahl behandelt

    * Link entfernt, weil existiert nicht mehr *


    PS: beim Input hast du type="text" vergessen ,

    beim Script brauch kein Type mehr hin

  • bin mir jetzt nicht sicher, aber durch array.push werden die "" immer dazu gefügt.

    Nö, push() wirft den korrekten Datentypen in das Array. Das Problem hier ist einfach nur, dass alles Formularfelder ( die zur Eingabe dienen ) grundsätzlich erstmal als String behandelt werden, ganz egal, was dort eingetragen wurde.


    Du hast aber in Deinem Beispiel doch für die Berechnung bereits parseInt() verwendet, warum dann nicht gleich bei der Übergabe an das Array:

    Code
    1. datenbank.push( parseInt(eingabe) );

    Problem gelöst...


    Dazu muss natürlich gewährleistet sein, dass der Wert der Eingabe tatsächlich einem Integer entspricht, oder man legt eine Prüfung und Fehlerbehandlung an.

  • Du hast aber in Deinem Beispiel doch für die Berechnung bereits parseInt() verwendet, warum dann nicht gleich bei der Übergabe an das Array:

    Code
    1. datenbank.push( parseInt(eingabe) );

    Stimmt soweit hatte ich nicht gedacht( wahr mir aber auch nicht sicher ob das reicht ).

    Hatte damals so ein ähnliches problem weil ich dachte das <input type="number"> das problem auch lösen könnte , aber leider geht das in meinen versuchen auch nicht


  • Genau das ist es, was ich gesucht habe. Und genau das war auch das Problem, dass ich anfangs auch versucht hatte, in HTML das ganze zu lösen indem ich dem Input Feld den type "number" geben wollte.
    Im Grunde hatte ich nach genau so etwas wie dem parseInt gesucht - und jetzt schließlich gefunden! Danke euch dafür!

    (Und ja, das Problem lag tatsächlich darin, dass die Informationen aus dem Input Feld kamen. Denn wenn ich im Script selber einen Wert pushe, kommt dieser auch tatsächlich als Zahl im Array an.)