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.