View Full Version : [JS] Ordine decrescente array
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"?
Si oppure cosa ancora più semplice se l'array ti serve in un ciclo for (o while) basta scorrerlo al contrario...
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)
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?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.