In JavaScript fordere ich den Browser auf, etwas zu tun, wenn die Fenstergröße größer als 500 Pixel ist. Ich mache es so:
if (windowsize > 500) {
// do this
}
Das funktioniert gut, aber ich möchte dieselbe Methode anwenden, aber mit einer Reihe von Zahlen. Daher möchte ich meinem Browser mitteilen, dass er Dinge tun soll, wenn die Fenstergröße zwischen 500 und 600 Pixel liegt. Ich weiß, dass das nicht funktionieren würde, aber so habe ich es mir vorgestellt:
if (windowsize > 500-600) {
// do this
}
Ist das in JavaScript überhaupt möglich?
javascript
Dyck
quelle
quelle
Antworten:
Testet, ob
windowsize
größer500
oder kleiner als ist,600
was bedeutet, dass weder Werte500
noch sich600
selbst dazu führen, dass die Bedingung wahr wird.quelle
windowsize
Beachten Sie, dass diese Bedingung nur dann erfüllt ist, wenn sie mindestens 501 Pixel und höchstens 599 Pixel beträgt. 500px und 600px sind ausgeschlossen. Fügen Sie Vergleichen Gleichheit hinzu, wenn Sie diese Werte einbeziehen möchten.if(500 < windowsize && windowsize < 600)
Ich hatte einen Moment Zeit, obwohl Sie bereits eine Antwort akzeptiert haben, dachte ich, ich würde Folgendes beitragen:
JS Fiddle Demo .
Wenn Sie lieber die Option haben möchten, zu überprüfen, ob eine Zahl im definierten Bereich einschließlich der Endpunkte liegt :
JS Fiddle Demo .
Bearbeitet, um eine geringfügige Änderung zu den oben genannten hinzuzufügen, da - wie in den Kommentaren angegeben -
Es hat sich gelohnt, die Verwendung von zu entfernen
Function.prototype.apply()
, was die geänderten Versionen der oben genannten Methoden ergibt, zunächst ohne die Option "inklusive":JS Fiddle Demo .
Und mit der Option "Inklusive":
JS Fiddle Demo .
Verweise:
Function.prototype.apply()
.Math.max()
.Math.min()
.quelle
Main.min(a,b)
anzurufen? Function.prototype.apply ist langsam! Außerdem ist es sinnlos, es aufzurufen, wenn Sie eine feste Anzahl von Argumenten haben.Function.prototype.apply()
, aber ich kann mir nicht vorstellen, was es war oder gewesen sein könnte.Number
Objekt nicht ändert . Dies ist ein Anti-Pattern und wird Sie beißen, wenn sich die ECMA-Standards ändern, um eineNumber.between()
Funktion einzuschließen , oder wenn eine andere Bibliothek oder ein anderer Code anNumber.prototype.between
anderer Stelle mit einer anderen Definition definiert wird. Erstellen Sie stattdessen eine Hilfsfunktion und verwenden Sie diese!Ich ziehe es vor, die Variable nach innen zu setzen, um einen zusätzlichen Hinweis darauf zu geben, dass der Code überprüft, ob meine Variable zwischen einem Bereich liegt
quelle
min < testval < max
Syntax liegtEs ist eine alte Frage, könnte aber für jemanden wie mich nützlich sein.
lodash
hat die_.inRange()
Funktion https://lodash.com/docs/4.17.4#inRangeBeispiel:
Bitte beachten Sie, dass diese Methode die verwendet
Lodash
Dienstprogrammbibliothek verwendet und Zugriff auf eine installierte Version von Lodash erfordert.quelle
_.inRange(10, 0, 10) // => false
Javascript
, ist anzumerken, dass diese Methode dieLodash
Dienstprogrammbibliothek verwendet und Zugriff auf eine installierte Version von Lodash erfordert.Sie können die Multiple-Klausel unter bestimmten
if
Bedingungen verwenden, anstatt zu schreibenweil dies logischerweise wirklich keinen Sinn macht, liest JavaScript Ihre if-Bedingung wie
weil es berechnet
500-600
zu-100
Sie sollten
&&
zum Beispiel beide Fälle streng prüfen, die so aussehenquelle
Ich habe gerade dieses Bit von jQuery implementiert, um die modalen Bootstrap-Werte ein- und auszublenden. Abhängig vom Wertebereich eines Benutzer-Textfeldeintrags werden verschiedene Felder angezeigt.
quelle
$().val()
ist also irrelevant und nicht notwendig. In der Originalversion der Frage erwähnt OP jedoch jQuery für eine einfache arithmetische Prüfung. (seufzt) Das ist der erste Fehler.Hier ist die kürzeste mögliche Methode:
Parametrisiert:
Sie können beide Seiten durch 2 teilen, wenn Sie nicht verstehen, wie die erste funktioniert;)
quelle