nächstkleineren Wert zu einer Variable in einem Array ermitteln

  • Hallo, ich habe mal wieder ein kleines Logikproblem, ich kann nicht entschlüsseln, was genau ich machen muss.


    Also wir haben eine Variable 'random' mit einen zufälligen Wert zwischen 0 und 200.

    Daneben ein Array mit bestimmten Zahlen zwischen 0 und 200.

    Dann noch ein var smaller, greater;  In die 'smaller' Variable soll der zu 'random' nächstkleinere Wert aus dem Array geschoben werden. In die 'greater' Variable der nächstgrößere Wert.


    Code
    <script>
    var smaller,
        greater;
    var random = 45;
    var numbers = [0, 15, 30, 60, 120, 240];
    
    
    </script>

    In 'smaller' soll nun der Wert 30 gespeichert werden, in 'greater' der Wert 60. Wie geht man das am besten an?

    So auf jeden Fall nicht:


  • Hey,


    du hast ein Fehler gemacht.


    Ich habe es eben mal getestet und ausprobiert, da ich es sehr interessant finde und kam zu diesem Ergebnis:



    Du musst in der for-schleife ja durch das Array numbers iterieren. Mit nur i erhälst du 1, 2, 3, 4 ... und nicht die Array-Werte welche zur Überprüfung benötigt werden. Darüberhinaus musst du überprüfen ob dieser Array-Wert größer/kleiner als der Random Wert ist. Beim ersten Schleifendurchlauf wenn der Array-Wert größer als der Random-Wert ist brichst du die Schleife einfach ab.


    Grüße,

    Stef

  • Ungetestet müsste es so aussehen:

    Code
    <script>
    var smaller = 0;
    for (var i = 0; i < numbers.length; i++) {
        var cnumber = numbers[i];
        if (cnumber < random && cnumber > smaller) smaller = cnumber;
    }
    </script>
  • Viel kleiner ist das nicht, der Unterschied ist halt der, dass ich mit forEach die Elemente direkt durchlaufe und nicht innerhalb einer Schleife für jeden Durchgang erst das entsprechende Element indexieren muss.

Jetzt mitmachen!

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