Autor | Zpráva | ||
---|---|---|---|
soucekgns Profil |
#1 · Zasláno: 21. 3. 2013, 16:00:28
Mám vícekrát se vyskytující podmínku
if (k==13||k==18||k==22...) a if (k!=13&&k!=18&&k!=22...) Díky za rady |
||
Someone Profil |
#2 · Zasláno: 21. 3. 2013, 16:11:40
Můžeš si napsat funkci, která ověřuje, zda dané pole obsahuje danou hodnotu:
Array.prototype.obsahuje = function(hodnota) { for(var a=0;a<this.length;a++) { if(typeof this[a] != "undefined" && this[a] == hodnota) { return true; } } return false; } if([13,18,22].obsahuje(13)) { alert("Pole čísel obsahuje hodnotu 13"); } else { alert("Pole čísel hodnotu 13 neobsahuje"); } |
||
Chamurappi Profil |
#3 · Zasláno: 21. 3. 2013, 16:46:03
Reaguji na soucekgnse:
Některé prohlížeče podporují indexOf na poli. Do ostatních se musí doskriptovat (a v Array.prototype.indexOf už for je). Pokud [13, 18, 22].indexOf(k) vrátí -1 , tak je k jiné než 13, 18 i 22.
|
||
peta Profil |
#4 · Zasláno: 22. 3. 2013, 08:06:35
soucekgns:
php tomu rika in_array (google=javascript in_array) function inArray(needle, haystack) { var length = haystack.length; for(var i = 0; i < length; i++) { if(haystack[i] == needle) return true; } return false; } function in_array(needle, haystack) { for(var i in haystack) { if(haystack[i] == needle) return true; } return false; } function array_search(needle, haystack) { for(var i in haystack) { if(haystack[i] == needle) return i; } return false; } |
||
preca1 Profil |
peta:
V JS se používá indexOf, taže bych do něj nezaváděl konvenci z PHP. Taky máš nekoncepční styl pojmenování funkcí (in_array a inArray, proč?). V JS je zvykem používat camelCase pro názvy metod a proměnnejch. V JS se for in pro iterování přes prvky pole nepoužívá, protože to neni dobře - vysvětlení na SO. |
||
joe Profil |
#6 · Zasláno: 22. 3. 2013, 10:59:09
Ano, šlo.
var vysledek = false; if (k==13||k==18||k==22...) { vysledek = true; } ... if (vysledek) { } ... if (vysledek) { } |
||
Chamurappi Profil |
#7 · Zasláno: 22. 3. 2013, 11:26:35
Reaguji na joa:
To už by mohl místo prvních pěti řádků použít rovnou: var výsledek = (k==13||k==18||k==22...); Reaguji na precu1: „Taky máš nekoncepční styl pojmenování funkcí (in_array a inArray, proč?).“ Protože je to patlal, který jen kopíruje výsledky z Googlu a nepřemýšlí nad nimi. Funguje podobně jako AdSense, akorát s nižší mírou odpovědnosti. |
||
peta Profil |
#8 · Zasláno: 22. 3. 2013, 13:10:48 · Upravil/a: Moderátor (editace znemožněna) 22. 3. 2013, 19:36:02
preca1, Chamurappi:
Ja? Co? Ty funkce jsem vykopiroval z jednoho odkazu na google. Neni to muj kod, co kritizujete. Konkretne je to prvni odkaz: stackoverflow.com/questions/784012/javascript-equivalent-of-phps-in-array Mozna by jste se meli zamyslet sami nad sebou nez se zacnete do nekoho dalsiho neopravnene navazet. Moderátor Chamurappi: Neuvádíš zdroje. Někde něco najdeš, nevyzkoušíš to a okopíruješ to do diskuse, takže za to pochopitelně neseš plnou odpovědnost.
Navic, prave Chamurappi je ten, co mi maze odpovedi s getElementByClassName, ktere nektere prohlizece nepodporuji a sam takovou odpoved napsal a nesmazal si ji. Moderátor Chamurappi: Ty ale ve svých odpovědích nezmiňuješ, že nefunguje všude. Další tvé mimotématické žblepty budu mazat. Chceš-li se s někým hádat, pořiď si manželku.
|
||
joe Profil |
#9 · Zasláno: 22. 3. 2013, 13:14:53
Chamurappi:
Vím, že to jde a vy JavaScriptoví ultra odborníci to tak píšete, ale mně osobně přijde přehlednější si to většinou rozepsat :-) |
||
Časová prodleva: 4 dny
|
|||
1Pupik1989 Profil |
Sám tedy používám něco podobného jako odkazoval peta to
inArray .
Array.prototype.valueExists = function(n){ var length = this.length; for(var i=0;i<length;i++){ if(this[i] == n){ return true; } } return false; }; Array.prototype.contains = function(){ var values = Array.prototype.slice.call(arguments), length = values.length; for(var i=0;i<length;i++){ if(!this.valueExists(values[i])){ return false; }; } return true; }; A kontrola: if([9,8,7,6,5,4,3,2,1].contains(1,2,3)){ //obsahuje }else{ //neobsahuje } |
||
Časová prodleva: 11 let
|
0