Inputwerte in Array und sortieren

  • Hallo liebe JS&HTML-Experten,


    ich möchte über eine Prompt-Methode solange Zahlen in einen Array einlesen bis der User etwas anderes als eine Zahl eingibt. Dann sollen die Zahlen sortiert und angezeigt werden.

    Ich glaube, ich muss irgendwo noch eine for-Schleife einbauen, mir erschließt sich aber nicht so ganz warum. Reicht es nicht, das Array nun auszulesen und die enthaltenen Werte zu sortieren? Und wenn nicht: warum nicht?


    Wie bekomme ich das hin? Jetzt ist es so, dass ich immer wieder auf den Button klicken muss und danach der neue Wert dazugeschreiben wird. Das ist aber nicht ganz das was ich will.

    Ich weiß nun aber nicht weiter, denn ich weiß nicht, wie ich an den Array als Ganzes komme.

    Wie schaffe ich es, dass nach jeder Eingabe wieder ein prompt erscheint?

    Ist das toString überhaupt nötig?

    Und muss das sortieren innerhalb oder außerhalb von else bzw. der Funktion users() geschehen und warum?


    Danke schon mal für eure zahlreichen Antworten :)

    RK

    (|Anfängerin|)

  • Danke für den nicht-hilfreichen Hinweis, der mir auch schon vorher nicht-geholfen hat.

    Einen in Javascript selbst geschriebenen Array kann ich schon sortieren. Es geht ja darum die Inputwerte in einen Array zu speichern und diese danach zu nutzen.

  • Einen in Javascript selbst geschriebenen Array kann ich schon sortieren.

    Zeigst Du aber nicht in Deinem Code.


    Ich glaube, ich muss irgendwo noch eine for-Schleife einbauen, mir erschließt sich aber nicht so ganz warum.

    Dann solltest Du mal überlegen, wie diese Anforderung ohne Schleife umsetzbar sein soll:

    Wie schaffe ich es, dass nach jeder Eingabe wieder ein prompt erscheint?

    Aber ich denke mal, dass Dir das egal ist, was ich schreibe, denn

    Danke für den nicht-hilfreichen Hinweis, der mir auch schon vorher nicht-geholfen hat.

    ich würde sagen, Du verzichtest einfach auf meine Hilfe...


    Viel Erfolg

  • Du willst nach jeder Eingabe wieder ein prompt? Dann setze das in eine Funktion und ruf sie immer wieder auf.


    Aber mal von vorne:

    Code
    <button onclick=users()>Sortieren Sie Ihre Zahlen</button>

    ich weiß nicht für welche Zwecke dein Script, aber es ist Ratsam immer vernünftig zu coden, daher empfehle ich das onclick event wegzulassen und stattdessen auf addEventListener() zurückgeifen.


    Du rufst dazu dann eine Funktion auf, in der das prompt drinnen ist, nachdem die Eingabe abgeschickt, ist, rufst Du eine weitere Funktion auf die die if-Abfragen macht. Danach wird wieder die Prompt Funktion aufgerufen.


    Das Array als ganzes wird einfach ausgegeben, wenn Du es normal ausgeben lässt.


    Das toString() brauchst Du nicht, Zahlen werden automatisch als String ausgegeben.

  • Zitat

    Ich glaube, ich muss irgendwo noch eine for-Schleife einbauen, mir erschließt sich aber nicht so ganz warum.

    Das trifft zu und der Grund ist, dass Du ja immer wieder bzw. wiederholt Zahlen einlesen willst, bis die Abbruchbedingung eintritt (Benutzer gibt keine Zahl ein).

    Versuche dies:

    Code
            var arr = [], cont = true;
            while (cont) {
                var a = prompt("Bitte eine Zahl eingeben");
                if (isNaN(a)) {
                    cont = false; // Schleife beenden
                } else {
                    // es ist eine Zahl: in Array eintragen
                }
            }
            // alle Zahlen sind eingelesen, jetzt kannst Du das Array sortieren und ausgeben
  • zu kompliziert:

    aber da hilft vermutlich auch nicht weiter...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!