Funzioni che operano su array function nomefunzione(x,y
Transcript
Funzioni che operano su array function nomefunzione(x,y
2aC AS 2008/09 Javascript Funzioni con array Funzioni che operano su array Funzioni • Ricordiamo che una funzione è una parte di codice a sé stante che esegue un compito e/o ritorna un risultato. • La sintassi di una funzione in JavaScript function nomefunzione(x,y,...) { ... istruzioni da eseguire ... ... quando la funzione viene richiamata ... return espressione risultato } • Sia i parametri in ingresso x, y che l’espressione risultato possono essere degli array. Assegnazione di valore ad un array • Abbiamo visto che l’istruzione a[5] = 7; assegna all’elemento di indice 5 dell’array il valore 7. • E’ possibile però anche l’istruzione var a=new Array(8,2,6,-5,0,0,6,8,-4,11); b=a; che assegna, in un sol colpo, alla variabile b gli elementi dell’array a. Esempi di funzioni con array – 1 Riempimento di un array con numeri interi a caso. I numeri sono 10 e vanno da 0 a 9. Math.random() genera un numero casuale tra 0 e 1 Lo moltiplichiamo per 10 per averlo tra 0 e 10 Math.floor() tronca la parte decimale function riempi_a_caso() { var num = new Array(); for (k=0;k<10; k++) num[k] = Math.floor(Math.random()*10); return num; } a = riempi_a_caso(); alert(a); Modifiche all’esempio 1 Fare le opportune modifiche alla precedente funzione in modo che si possa richiamare la funzione stessa assegnando come parametri (e quindi potendo variare nella chiamata): Il numero degli elementi dell’array da riempire Il numero massimo nel quale estrarre gli interi casuali 2aC AS 2008/09 Javascript Funzioni con array Suggerimento: se la funzione viene chiamata con function riempi_a_caso(12, 15) Allora deve creare un array di 12 elementi presi casualmente tra 0 e 15. Usare le opportune variabili. Esempio 2 Cercare il massimo di un array. La funzione riceve come argomento l’array di cui deve cercare il massimo. Per cercare il massimo, memorizza come massimo il primo elemento dell’array e ne sostituisce il valore se un successivo elemento dell’array supera tale valore. function trova_max(arr) { var max = arr[0]; for (k=1;k<arr.length; k++) if (arr[k] > max) max = arr[k] ; return max; } a = new Array(5, 3, -2, 7, 4, 12, 0, 6, -8, 3); alert(trova_max(a)); Variazioni dell’esempio 2 • Cercare il minimo dell’array • Contare quanti elementi dell’array sono positivi • Sommare gli elementi dell’array • Cercare se un certo elemento è presente nell’array In quest’ultimo caso, la funzione deve ricevere come parametri l’array ed il valore da trovare function cerca_se_in_array(x,arr) dove x è l’elemento da cercare e arr è l’array. • Questa funzione può essere utilizzata per riempire casualmente un array con elementi a caso diversi tra loro. Una volta estratto il primo elemento, il secondo estratto lo si mette nell’array solo se non è già presente nell’array. E così via.