Zdravím,
nevíte jak zjistím, jestli je daná položka v poli aniž bych ho musel celé procházet cyklem? určitě na to existuje nějáká hezká funkce, ale něják se k ní nemůžu dopracovat.. :)
Fórum › JavaScript, AJAX, jQuery
Je položka v poli?
Funkce existuje, ale zatím ji podporuje jen FF:
index_polozky=Pole.indexOf(polozka) [Pokud není v poli je index -1]
Pokud je pole ze stringů nebo čísel, můžeš převést pole na řetězec a použít jednu z textových hledacích metod (indexOf, match, test, search)
Např. obsahuje pole p polozku txt ?
<script>
p=[111,222,333,444];
o="@$@"; /* vhodný oddělovač */
txt=222; alert((o+p.join(o)+o).indexOf(o+txt+o)>-1?"ano":"ne") /* >> ano */
txt=22; alert( (o+p.join(o)+o).indexOf(o+txt+o)>-1?"ano":"ne") /* >> ne */
o=""; /* takový oddělovač nelze použít */
txt=222; alert( (o+p.join(o)+o).indexOf(o+txt+o)>-1?"ano":"ne") /* >> ano */
txt=22; alert( (o+p.join(o)+o).indexOf(o+txt+o)>-1?"ano":"ne") /* >> ano [špatně] */
</script>
Jinak univerzální postup je cykl + test: if i<0 then nenalezeno
<script>
p=[111,222,333,444];
txt=444; for(var i=p.length;i--&&p[i]!=txt;); alert(i);
txt=333; for(var i=p.length;i--&&p[i]!=txt;); alert(i);
txt=222; for(var i=p.length;i--&&p[i]!=txt;); alert(i);
txt=111; for(var i=p.length;i--&&p[i]!=txt;); alert(i);
txt=22; for(var i=p.length;i--&&p[i]!=txt;); alert(i); /* i<0 nenalezeno */
</script>
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 17 hostů
Podobná vlákna
Aktivní položka v seznamu — založil gavec
Víceřádková položka JTree — založil Bicek
Nova polozka do databazy — založil Elited
Listbox dalsia polozka — založil martin.007
Aktivní položka menu — založil Janina
Moderátoři diskuze