110 likes | 273 Views
Ústav automatizace inženýrských úloh a informatiky FAST VUT v Brně. 0U2 - Základy informatiky a výpočetní techniky 2. JavaScript - 5 . část Pole. Pole. p. 25. p. 10. 25. 13. -5. Jednoduchá proměnná – obsahuje jednu hodnotu Pole – možnost uchování skupiny hodnot
E N D
Ústav automatizace inženýrských úloh a informatiky FAST VUT v Brně 0U2 - Základy informatiky a výpočetní techniky 2 JavaScript - 5. část Pole
Pole p 25 p 10 25 13 -5 Jednoduchá proměnná – obsahuje jednu hodnotu Pole– možnost uchování skupiny hodnot Pole je v jazyce JavaScript chápáno jako objekt. Položky pole se zpřístupňujípomocí indexů:p[0], p[1], ... Index lze chápat jako pořadové číslo položky. První položka má index 0. Přiřazení hodnoty do jednoduché proměnné: p = 25; do první položky pole : p[0] = 10; • Vytvoření pole: • var a=new Array(); • var b=new Array(10); • var c=new Array("Praha", "Brno", "Ostrava");
Příklad -vložení hodnot do pole a jejich výpisu: • <HTML> • <HEAD><TITLE>pole</TITLE></HEAD> • <BODY> • <SCRIPT> • var n=5; • var x=new Array(n); • for(i=0;i<n;i++) • { • x[i]=Math.round(Math.random()*10); • //náhodně volená čísla z intervalu <0,10> • document.write("x["+i+"]="+x[i]+"<BR>"); • } • </SCRIPT> • </BODY> • </HTML>
Tah sportky – vylosuje se 6 čísel ze 49, čísla se nesmí opakovat. Příklad použití pole <HTML><HEAD><TITLE>Tah sportky</TITLE> <SCRIPT> function losovani() {var c=new Array(6); s=""; for (i=0;i<6;i++) { opak=true; while (opak) { opak=false; x=Math.ceil(Math.random()*49); for (j=0;j<i;j++) if (x==c[j]) opak=true; } c[i]=x; s+=x+" "; } document.all.D.innerHTML="<B>Vylosovaná císla: "+s+"</B>"; } </SCRIPT></HEAD> <BODY bgcolor="lightblue"> <H1 align="center"><FONT color="darkblue">LOSOVÁNÍ</FONT></H1> <FORM name="F"> <INPUT type="button" value="Losuj" onclick="losovani()"> </FORM> <DIV id="D"></DIV><BR><BR><HR></BODY></HTML>
Metody a vlastnosti objektu pole join() - spojí všechny prvky do řetězce var x=new Array(1,8,3); s=x.join(); - v s bude řetězec "1,8,3" reverse() - převrací pořadí prvkůx.reverse(); - v x bude 3,8,1 sort() - třídí prvky pole - pole.sort(porovnávací_funkce) function f(a,b) {return (a-b)} s=x.join(); - v s bude řetězec "1,8,3" x.sort(f); - setřídí čísla vzestupně s=x.join(); - v s bude řetězec "1,3,8" length – vlastnost – počet položek pole function hledej(pole,hod) {n=pole.length; v=-1; for (i=0;i<n;i++) if (pole[i]==hod) { v=i; break;} return v; }
prvni = new Array("a","b","c"); druhe = new Array("d","e","f"); sloucene = prvni.concat(druhe); // vytvoří pole ["a","b","c","d","e","f"] for (i = 0; i < sloucene.length; i++) alert(sloucene[i]); prvni = new Array("a","b","c"); druhe = new Array("d","e","f"); treti = new Array("g","h","i"); sloucene = prvni.concat(druhe,treti); // vytvoří pole ["a","b","c","d","e","f","g","h","i"] for (i = 0; i < sloucene.length; i++) alert(sloucene[i]); pole = new Array("a","b","c"); tmp1 = pole.join(); //textovýřetězec "a,b,c" alert(tmp1); tmp2 = pole.join(", "); //textovýřetězec "a, b, c" alert(tmp2); tmp3 = pole.join(" : ") //textovýřetězec "a : b : c" alert(tmp3);
Tah sportky – vylosovaná čísla se vypíší setříděná Příklad <SCRIPT> function f(a,b) {return a-b; } function losovani() {var c=new Array(6); s=""; for (i=0;i<6;i++) {opak=true; while (opak) { opak=false; x=Math.ceil(Math.random()*49); for (j=0;j<i;j++) if (x==c[j]) opak=true; } c[i]=x; } c.sort(f); s=c.join(); document.all.D.innerHTML="<B>Vylosovaná císla: "+s+"</B>"; } </SCRIPT>
Implicitně vytvářená pole: Prohlížeč automaticky prvky se stejným identifikátorem interpretuje jakopole. Indexy se přidělují od 0 a to podle pořadí, ve kterém jsou prvky na stránce zapsány. Na jednotlivé prvky se pak lze těmito indexy odkazovat. Příklad <FORM name="f"> <INPUT type="radio" name="prvek"> Jedna <INPUT type="radio" name="prvek"> Dvě <INPUT type="radio" name="prvek"> Tři </FORM> … if(document.f.prvek[1].checked) alert(" vybráno je Dvě")
Specifické konstanty a hodnoty Dodatky: • Null • indikuje „žádnou“ hodnotu, • je obsahem proměnné, která nebyla inicializována • NaN (Not-a-Number) =„nečíslo“ • objeví se ve výsledku, kde je očekáván číselný údaj • Undefined • při použití proměnné, které ještě nebyla přidělena hodnota Vestavěné funkce • isNaN(p) • true - v případě, že parametr je nečíslo • parseFloat (řetězec) parseInt(řetězec) • pokusí se převést řetězec na reálné / celé číslo • eval (řetězec) • obsahuje-li řetězec příkaz nebo výraz, bude tento vyhodnocen
<SCRIPT> function Pridej(znak) {document.kalkulacka.displej.value+=znak;} function Smaz() {document.kalkulacka.displej.value="";} function Vyhodnot() { document.kalkulacka.displej.value=eval(document.kalkulacka.displej.value);} </SCRIPT> <FORM name="kalkulacka"> <TABLE border="5" bgcolor="silver" cellpadding="5" align="center"> <TR align="center"> <TD colspan="4" bgcolor="gray"> <INPUT type="text" name="displej" size="30"> <TR align="center"> <TD><INPUT type="button" value="7" onclick="Pridej('7')"> <TD><INPUT type="button" value="8" onclick="Pridej('8')"> <TD><INPUT type="button" value="9" onclick="Pridej('9')"> <TD><INPUT type="button" value="+ " onclick="Pridej('+')"> <TR align="center"> . . . . . . . . . . <TD><INPUT type="button" value=" / " onclick="Pridej('/')"> <TR align="center"> <TD><INPUT type="button" value="C" onclick="Smaz()"> <TD><INPUT type="button" value="." onclick="Pridej('.')"> <TD colspan="2"> <INPUT type="button" value=" = " onclick="Vyhodnot()"> </TABLE></FORM> Použití eval: