Avatar billede madslee Nybegynder
17. januar 2003 - 14:18 Der er 11 kommentarer

Sort();

HVorfor virker dette script ikke?


<script>
var sort_i,sort_isec;
function sortList() {
var obj = frmuser.userList;
var tmp = new Array();
for (sort_i = 0; sort_i < obj.length; sort_i++)
{
    tmp[sort_i] = obj.options[sort_i].text.toLowerCase();
    obj.options[sort_i] = null;
}
tmp.sort();

for(sort_isec = 0; sort_isec < sort_i; sort_isec++)
{
obj.options[obj.options.length] = new Option(tmp[sort_isec],sort_isec);
}
}
</script>

<input type="button" value="tryk" onclick="sortList();">
<form name="frmuser">
<select name="userList" size="10">
<option>Mads</option>
<option>sjov</option>
<option>john</option>
<option>lars</option>
<option>kim</option>
<option>mia</option>
<option>lars</option>
<option>lort</option>
</select>
</form>
Avatar billede angam Nybegynder
17. januar 2003 - 14:23 #1
Kan du ille bare flytte teksten direkte over - sådan her:

function sortList() {
  var obj = frmuser.userList;
  var tmp = new Array();
  for (n=0;n<obj.length;n++) {
    tmp[n] = obj.options[n].text.toLowerCase();
  }
  tmp.sort();
   
  for(n=0;n<tmp.length;n++) {
    obj.options[n].text = tmp[n];
  }
}
Avatar billede Slettet bruger
17. januar 2003 - 15:02 #2
For det første er det nok en dårlig idé at konvertere teksten til lowercase... For det andet er det:

var obj = document.frmuser.userList;

Men ellers ser det fint nok ud.
Avatar billede olebole Juniormester
17. januar 2003 - 15:32 #3
<ole>

Det er en voldsom god idé at ændre til lowercase  :)
Prøv denne her, phoenixv:
  var bla = [ "ole","Bole","clau","Sen" ];
  alert( bla.sort() );

/mvh
</bole>
Avatar billede Slettet bruger
17. januar 2003 - 22:13 #4
OK, men så skal det gøres således:

<script>
function sortList() {
  var obj = document.frmuser.userList;
  var tmp = new Array();
  for (n=0;n<obj.length;n++) {
    tmp[n] = new Array();
    tmp[n][0] = obj.options[n].text;
    tmp[n][1] = tmp[n][0].toLowerCase();
  }
  tmp.sort(spSort);
   
  for(n=0;n<tmp.length;n++) {
    obj.options[n].text = tmp[n][0];
  }
}

function spSort(a, b) {
return (a[1] == b[1]) ? 0 : (a[1] > b[1]) ? 1 : -1;
}
</script>
Avatar billede olebole Juniormester
18. januar 2003 - 14:39 #5
yups ... hvis man ønsker at beholde oprindeligg case, er det en udmærket løsning  :)
/mvh
Avatar billede Slettet bruger
18. januar 2003 - 15:52 #6
Og hvorfor skulle man ikke ønske det? :)
Avatar billede olebole Juniormester
18. januar 2003 - 16:10 #7
Hvis du kikker på eksemplet, kunne det netop se ud, somom det er en fejl, at ét navn står med stort  :)
Det kunne være, at noget er trukket fra en database (og måske konverterert til lowercase) og noget dynamisk indskrevet på klienten ... en bruger kan lige have skrevet sit navn, f.eks.
Der kunne tænkes masser af eksempler  :)
/mvh
Avatar billede Slettet bruger
18. januar 2003 - 16:12 #8
Ja, ja... :)
Men så er vi vist også ved at være ude på overdrevet!
Det må jo være op til madslee.
Avatar billede olebole Juniormester
18. januar 2003 - 16:19 #9
Jeg ved ikke, hvor du er - jeg er personligt ved min laptop. Men nu du nævner det ... Eksperten _er_ overdrevet  :D
Naturligvis er det op til madslee.
/mvh
Avatar billede Slettet bruger
18. januar 2003 - 18:53 #10
Jeg er skam på overdrevet! Her har jeg i øvrigt været et par år...
Til tider er jeg dog også langt ude i skoven eller dér, hvor jeg ikke kan bunde! :)
Avatar billede olebole Juniormester
18. januar 2003 - 21:35 #11
*ROTFL*  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester