javascript - 5 . část pole

11
JavaScript - 5. část Pole Ústav automatizace inženýrských úloh a informatiky FAST VUT v Brně 0U2 - Základy informatiky a výpočetní techniky 2

Upload: gur

Post on 04-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Ú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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JavaScript -  5 . část Pole

JavaScript - 5. část

Pole

Ústav automatizace inženýrských úloh a informatiky

FAST VUT v Brně

0U2 - Základy informatiky a výpočetní techniky 2

Page 2: JavaScript -  5 . část Pole

PoleJednoduchá proměnná – obsahuje jednu hodnotuPole – možnost uchování skupiny hodnotPole 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");

25

p

25

13

-510

p

Page 3: JavaScript -  5 . část Pole

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>

Page 4: JavaScript -  5 . část Pole

Příklad použití poleTah sportky – vylosuje se 6 čísel ze 49, čísla se nesmí opakovat.

<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+"&nbsp;&nbsp;"; } 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>

Page 5: JavaScript -  5 . část Pole

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,1sort( ) - 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;}

Page 6: JavaScript -  5 . část Pole

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);

Page 7: JavaScript -  5 . část Pole

<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>

PříkladTah sportky – vylosovaná čísla se vypíší setříděná

Page 8: JavaScript -  5 . část Pole

Implicitně vytvářená pole:Prohlížeč automaticky prvky se stejným identifikátorem interpretuje jako pole.

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ě")

Page 9: JavaScript -  5 . část Pole

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ý údajUndefined• při použití proměnné, které ještě nebyla přidělena

hodnota

Specifické konstanty a hodnoty

Vestavěné funkceisNaN(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

Page 10: JavaScript -  5 . část Pole

Použití eval:<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>

Page 11: JavaScript -  5 . část Pole

Použití eval: