PDA

View Full Version : [JS] Ordine decrescente array


Popoman
06-02-2010, 13:43
Ordinare secondo un ordine crescente è semplice basta usare sort(); ma come posso fare per ordinare i vari valori di un array secondo un ordine decrescente? :confused:
EDIT: un'altra cosa: come faccio, dopo aver dato vari valori ad un array, a "svuotare" l'array?

il-pollo
06-02-2010, 16:08
la soluzione più semplice è quella di usare sort() seguita da reverse()

cosa intendi per "svuotare"?

WarDuck
06-02-2010, 16:37
Si oppure cosa ancora più semplice se l'array ti serve in un ciclo for (o while) basta scorrerlo al contrario...

Popoman
06-02-2010, 18:14
Si oppure cosa ancora più semplice se l'array ti serve in un ciclo for (o while) basta scorrerlo al contrario...No, non mi serve per nessun for/while.
La cosa del "leggere al contrario" l'array però mi interessa...come faccio?la soluzione più semplice è quella di usare sort() seguita da reverse()

cosa intendi per "svuotare"?
In che senso sort() seguita da reverse()?
Così?
a=new Array(12);
a.sort();
a.reverse();
Per svuotare intendo: assegno tot valori all'array che poi non mi serviranno più e dovranno quindi essere eliminati. Tutti insieme, in contemporanea.

il-pollo
06-02-2010, 18:47
In che senso sort() seguita da reverse()?
Così?
a=new Array(12);
a.sort();
a.reverse();
yesss, così
Per svuotare intendo: assegno tot valori all'array che poi non mi serviranno più e dovranno quindi essere eliminati. Tutti insieme, in contemporanea.
se intendi riusare l'array, puoi semplicemente resettare tutti i suoi valori... attento solo che l'array resta della lunghezza con cui l'hai creato! se ti serve un array di diversa dimensione, dovresti fare una cosa di questo tipo
a=new Array(12);
a.sort();
a.reverse();

... uso i valori di a...

a=new Array(25);
...

non puoi aggiungere o eliminare elementi in un array una volta creato... una lista è la struttura dati più adatta a queste esigenze

il-pollo
06-02-2010, 18:54
"leggere al contrario" l'array significa semplicemente
a = new Array(12);
... assegni dei valori agli elementi di a...
var i;
for (i = a.length-1; i >= 0; i--){
... usi gli elementi a[i]...
}
l'indice con cui leggi gli elementi dell'array parte dall'ultimo (a.length-1) e scende fino al primo (0)

Popoman
07-02-2010, 09:21
Ragazzi grazie. Un'ultima cosa: Stavo facendo due funzioni che catturassero una il massimo valore ed uno il minimo. Ho pensato di usare Math.min() e Math.max()
Ho scritto le due funzioni in questo modo:
function mi(){
var n=parseInt(a);
var str="Il valore minimo immesso è:"+"\n";
document.forms['frm'].elements['text'].value=str+Math.min(n);
}
function ma(){
var n=parseInt(a);
var str="Il valore massimo immesso è:"+"\n";
document.forms['frm'].elements['text'].value=str+Math.max(n);
}
Il problema è che entrambe le funzioni restituiscono il valore minimo :eek:
Volevo poi fare due tipi di medie:
una semplicissima minimo+massimo/2 e la media aritmetica. Come posso sommare tutti i vari valori?