Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Ordinare array

  1. #1

    Ordinare array

    Ciao, devo ordinare un array multidimensionale con un valore all'indice 7 della seconda dimensione. La prima dimensione dell'array contiene un'altro array con indici numerici e valori sia testuali che numerici, e devo ordinare questo array su un valore stringa della seconda dimensione.
    Ho realizzato questa funziona, ma non funziona, qualcuno da darmi qualche consiglio in merito?
    codice:
    this.dati.sort(order);
    function order(a, b):Number {
    	 var name1:String = a[7].split("")[0];
    	 var name2:String = b[7].split("")[0];
    	 if (name1<name2) {
    	 return -1;
    	 } else if (name1>name2) {
    	 return 1;
    	 } else {
    	 return 0;
    	 }
    }

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    potresti inserire un esempio del tipo di array che devi ordinare?

  3. #3
    Non è semplice postarlo, in pratica leggo dei file di testo e metto il contenuto che mi interessa in un array multidimensionale, poi ordino quell'array. Comunque se è propio necessario allego un file

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da jeck
    Non è semplice postarlo, in pratica leggo dei file di testo e metto il contenuto che mi interessa in un array multidimensionale, poi ordino quell'array. Comunque se è propio necessario allego un file

    no, io ti chiedevo di postare un pezzo dell'array, tanto per capirne la struttura... al max postamelo in pvt per vederlo

  5. #5
    Quello che ho postato è una parte dell'array, considera che è più grosso
    codice:
    myArray[5][7]=A
    myArray[5][6]=Dormire
    myArray[5][5]=0774 330605
    myArray[5][4]=Piazza Massimo,4
    myArray[5][3]=Sirene
    myArray[5][2]=Tivoli
    myArray[5][1]=Hotel
    myArray[5][0]=5
    myArray[4][7]=E
    myArray[4][6]=Body
    myArray[4][5]=0774 334928
    myArray[4][4]=Via Tiburtina, 4
    myArray[4][3]=Armonia Inn
    myArray[4][2]=Tivoli
    myArray[4][1]=Centro Benessere
    myArray[4][0]=4
    myArray[3][7]=A
    myArray[3][6]=Dormire
    myArray[3][5]=0774 535955
    myArray[3][4]=Via Maremma Inferiore Km 2100
    myArray[3][3]=Dimora Adriana
    myArray[3][2]=Tivoli
    myArray[3][1]=Hotel
    myArray[3][0]=3
    myArray[2][7]=B
    myArray[2][6]=Dormire
    myArray[2][5]=0774 500515
    myArray[2][4]=Via Rosolina,snc
    myArray[2][3]=La Ferrata
    myArray[2][2]=Tivoli
    myArray[2][1]=Agriturismo
    myArray[2][0]=2
    myArray[1][7]=B
    myArray[1][6]=Dormire
    myArray[1][5]=0774 411474
    myArray[1][4]=Via Empolitana,Km 3
    myArray[1][3]=Valle degli Arci
    myArray[1][2]=Tivoli
    myArray[1][1]=Agriturismo
    myArray[1][0]=1
    myArray[0][7]=C
    myArray[0][6]=Dormire
    myArray[0][5]=393 1044937
    myArray[0][4]=Via Domenico Giuliani, 89
    myArray[0][3]=Palazzo Maggiore
    myArray[0][2]=Tivoli
    myArray[0][1]=Bed & Brekfast
    myArray[0][0]=0

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    allora, non ho testato questa soluzione, è abbastanza casereccia e sicuramente migliorabile (qualora funzionasse ), ma può essere uno spunto
    codice:
    var temp = new Array();
    var newArray = new Array();
    for (var i = 0; i<myArray.length; i++) {
    	temp[i] = myArray[i][7]+"|"+myArray[i][0]+"|"+myArray[i][1]+"|"+myArray[i][2]+"|"+myArray[i][3]+"|"+myArray[i][4]+"|"+myArray[i][5]+"|"+myArray[i][6]+"|"+myArray[i][7];
    }
    temp.sort();
    for (var j = 0; j<myArray.length; j++) {
    	temp[j] = temp[j].substr(2, temp[j].length);
    	newArray[j] = temp[j].split("|");
    }
    var myArray = newArray;

  7. #7
    Ora la provo e poi ti faccio sapere come va.

  8. #8
    Sembra funzionare, ottima soluzione, non ci avevo pensato. Grazie mille.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.