Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    problemi con ordinazione array

    ciao a tutti... ho un problema... questo script dovrebbe mostrarmi due alert... uno con un array ordinato e uno non ordinato... me ne mostra due ordinati... perchè?
    codice:
    <script>
    var ord=new Array(7,3,5,9,1,4,2,6,8);
    var non_ord=ord;
    ord=ord.sort();
    alert(ord);
    alert(non_ord);
    </script>

  2. #2
    A parte che si dice ordinamento, sort cambia l'array originale, e facendo non_ord=ord non fai una copia dell'array.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ma se io faccio
    codice:
    var ord=new Array(7,3,5,9,1,4,2,6,8);
    var non_ord=ord;
    alert(non_ord);
    vedo che non_ord è stato correttamente copiato...
    comunque... come posso avere un array, copiarlo per averne due identici, ordinare uno e lasciare invariato l'altro?

  4. #4
    Utente di HTML.it L'avatar di marty89
    Registrato dal
    Apr 2011
    Messaggi
    107
    Ciao, facendo:
    codice:
    var non_ord=ord;
    avrai due variabili che puntano allo stesso array, quindi quando lo ordini tutte e due conterranno lo stesso array appena ordinato.
    Per ottenere un array ordinato e uno non ordinato, mi vengono in mente due soluzioni:
    codice:
    var ord = new Array(7,3,5,9,1,4,2,6,8);
    var non_ord=new Array(7,3,5,9,1,4,2,6,8);
    ord = ord.sort();
    alert(ord);
    alert(non_ord);
    oppure:
    codice:
    var ord = new Array(7,3,5,9,1,4,2,6,8);
    var non_ord = new Array();
    for(var el in ord){
        non_ord.push(ord[el]);
    }
    ord = ord.sort();
    alert(ord);
    alert(non_ord);

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    aaaaaaaaaaaaa ora è chiaro, la seconda soluzione è perfetta!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.