W JavaScript mówię przeglądarce, aby coś zrobiła, jeśli rozmiar okna jest większy niż 500 pikseli. Robię to tak:
if (windowsize > 500) {
// do this
}
To działa świetnie, ale chciałbym zastosować tę samą metodę, ale z zakresem liczb. Dlatego chciałbym powiedzieć mojej przeglądarce, aby zrobiła coś, jeśli rozmiar okna wynosi od 500 do 600 pikseli. Wiem, że to nie zadziała, ale tak sobie wyobrażałem:
if (windowsize > 500-600) {
// do this
}
Czy jest to w ogóle możliwe w JavaScript?
javascript
Dyck
źródło
źródło
Odpowiedzi:
Sprawdza, czy wartość
windowsize
jest większa500
i mniejsza niż600
oznacza, że żadna z wartości500
ani600
sama nie spowoduje, że warunek stanie się prawdziwy.źródło
windowsize
ma co najmniej 501 pikseli i co najwyżej 599 pikseli. 500px i 600px są wykluczone. Dodaj równość do porównań, jeśli chcesz uwzględnić te wartości.if(500 < windowsize && windowsize < 600)
Miałem chwilę, więc chociaż już zaakceptowałeś odpowiedź, pomyślałem, że wniesie co następuje:
Demo JS Fiddle .
Lub, jeśli wolisz mieć możliwość sprawdzenia, czy liczba należy do zdefiniowanego zakresu, w tym punktów końcowych :
Demo JS Fiddle .
Zredagowano w celu dodania drobnej poprawki do powyższego, biorąc pod uwagę, że - jak zauważono w komentarzach -
warto było zrezygnować z używania
Function.prototype.apply()
, co daje zmienione wersje powyższych metod, po pierwsze bez opcji „inclusive”:Demo JS Fiddle .
A z opcją „włącznie”:
Demo JS Fiddle .
Bibliografia:
Function.prototype.apply()
.Math.max()
.Math.min()
.źródło
Main.min(a,b)
? Function.prototype.apply jest powolne! Poza tym nazywanie go, gdy masz określoną liczbę argumentów, jest bezcelowe.Function.prototype.apply()
, ale nie mogę pomyśleć, co to było lub mogło być.Number
obiektu. Jest to anty-wzorzec, który przyjdzie i ugryzie Cię, jeśli standardy ECMA zmienią się w celu uwzględnieniaNumber.between()
funkcji lub jeśli inna biblioteka lub inny fragment kodu definiujeNumber.prototype.between
gdzie indziej z inną definicją. Zamiast tego utwórz funkcję pomocniczą i użyj jej!Wolę umieścić zmienną wewnątrz, aby dać dodatkową wskazówkę, że kod sprawdza poprawność mojej zmiennej znajduje się między wartościami zakresu
źródło
min < testval < max
składni PythonaTo stare pytanie, ale może być przydatne dla kogoś takiego jak ja.
lodash
ma_.inRange()
funkcję https://lodash.com/docs/4.17.4#inRangePrzykład:
Należy pamiętać, że ta metoda wykorzystuje
Lodash
bibliotekę narzędzi i wymaga dostępu do zainstalowanej wersji Lodash.źródło
_.inRange(10, 0, 10) // => false
Javascript
, warto zauważyć, że ta metoda wykorzystujeLodash
bibliotekę narzędzi i wymaga dostępu do zainstalowanej wersji Lodash.if
Zamiast pisać można użyć klauzuli Multiple w warunkuponieważ to naprawdę nie ma sensu logicznie, JavaScript odczyta twój warunek, taki jak
ponieważ oblicza
500-600
się-100
Powinieneś użyć
&&
na przykład do ścisłego sprawdzenia obu przypadków, które będą wyglądać takźródło
Właśnie zaimplementowałem ten fragment jQuery, aby pokazać i ukryć wartości modalne bootstrap. Różne pola są wyświetlane w zależności od zakresu wartości pola tekstowego użytkownika.
źródło
$().val()
ma znaczenia i nie jest konieczne. Ale znowu, w pierwotnej wersji pytania, OP wspomina o jQuery, dla prostego sprawdzenia arytmetycznego. (wzdychanie) To pierwszy błąd.Oto najkrótsza możliwa metoda:
Sparametryzowane:
Możesz podzielić obie strony przez 2, jeśli nie rozumiesz, jak działa pierwsza;)
źródło