Avatar billede flexbaby Nybegynder
20. juli 2005 - 15:52 Der er 13 kommentarer og
1 løsning

SortOn(Array.NUMERIC) problem

Er der nogen som har et svar på hvorfor, når jeg bruger sortOn("num", Array.NUMERIC); på en array der indholder 4 numre( feks: 702,981,711,1215 ). Giver den mig 1215,702, 711,981 tilbage... Dette sker hvergang der er 1 tal over 1000 og 2 eller flere under 1000, hvis der er 2 numre over 1000 og 2 under, giver den mig det rigtige output. Som skulle være 702,711,981,1215.

Min array ser således ud:
([num:981 title:"prob1"],[num:711, title:"prob2"],([num:702, title:"prob3"],([num:1215, title:"prob4"])
Avatar billede barklund Nybegynder
20. juli 2005 - 16:11 #1
Hm, med følgende script:

var foo:Array = new Array();
foo.push({num: 702, val: "hej"});
foo.push({num: 981, val: "hej1"});
foo.push({num: 711, val: "hej2"});
foo.push({num: 1215, val: "hej3"});
foo.sortOn("num", Array.NUMERIC);
for (var i:Number = 0; i < foo.length; i++) {
    trace("foo["+i+"] = {num:"+foo[i].num+", val:"+foo[i].val+"}");
}

Får jeg perfekt output:

foo[0] = {num:702, val:hej}
foo[1] = {num:711, val:hej2}
foo[2] = {num:981, val:hej1}
foo[3] = {num:1215, val:hej3}

Jeg ved ikke lige, hvorfor det ikke virker for dig - hvad er dit præcise script?

--
Morten Barklund
Avatar billede flexbaby Nybegynder
20. juli 2005 - 16:29 #2
Hej Morten,

Problemet ligger heller ikke hos mig men hos kunden, når kunden køre filen med scriptet, gør den netop dette. Det vises også korrekt hos mig og ca 15+ computere som jeg har prøvet af, men ude hos kunden har de 2 ud af xxx antal computere som viser dette resultat. Og jeg har et større problem med at debugge, da jeg mere eller mindre skal kontakte kunden for at være mit mellemled :p Rimelig tidskrævende, for en ting der ellers burde være ligetil...
Avatar billede flexbaby Nybegynder
20. juli 2005 - 16:33 #3
Mit script er mere eller mindre identisk med dit, ud over jeg bruger nogle if statements istedet for for. Da jeg skal vide hvilket produkt(title) numrene tilhøre.
Avatar billede barklund Nybegynder
20. juli 2005 - 16:39 #4
Overvejet at de muligvis bruger Flash Player 6? Den havde sortOn, men ikke Array.NUMERIC. Så ville den nemlig kunne give den slags fejl.
Avatar billede flexbaby Nybegynder
20. juli 2005 - 16:42 #5
Ja, sidder også nu og prøver at køre udenom Array.NUMERIC med denne funktion
function sortByNumber(a, b) {
    return (a>b);
}
Avatar billede barklund Nybegynder
20. juli 2005 - 16:46 #6
return a-b er nok det mest sædvanlige :)
Avatar billede flexbaby Nybegynder
20. juli 2005 - 16:48 #7
Men hvordan jeg kan køre den sort på num hvor title følger med er mig nu et mysterium...
Avatar billede barklund Nybegynder
20. juli 2005 - 16:51 #8
var foo:Array = new Array();
foo.push({num: 702, val: "hej"});
foo.push({num: 981, val: "hej1"});
foo.push({num: 711, val: "hej2"});
foo.push({num: 1215, val: "hej3"});
foo.sort(function(a,b){return(a.num-b.num);});
for (var i:Number = 0; i < foo.length; i++) {
    trace("foo["+i+"] = {num:"+foo[i].num+", val:"+foo[i].val+"}");
}

*tada.wav*

--
Morten Barklund :)
Avatar billede flexbaby Nybegynder
20. juli 2005 - 16:57 #9
Du ved det jo allerede, post et svar og lad de 150 p kom flyvende :D Works like a charm.
Avatar billede barklund Nybegynder
20. juli 2005 - 17:19 #10
Læs om ovenstående og meget andet tilsvarende i http://globe.dk/?action=detail&vare=FG227-7

--
Morten Barklund
Avatar billede flexbaby Nybegynder
21. juli 2005 - 08:37 #11
will do will do :)
Avatar billede barklund Nybegynder
21. juli 2005 - 10:11 #12
Hov, det skulle vist have været et svar :)
Avatar billede flexbaby Nybegynder
21. juli 2005 - 19:33 #13
Hehe :)
Avatar billede barklund Nybegynder
21. juli 2005 - 19:43 #14
Tark for points :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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