Avatar billede gobbles Nybegynder
29. januar 2005 - 23:39 Der er 15 kommentarer og
1 løsning

oprettelse af multidimensionelle array's

hej jeg prøver at samle nogle arrays i et multidimensionelt, men jeg kan ikke få alle pladserne fyldt ud.. det er som om den går lidt kold da nogle af mine arrays indeholder strenge og andre tal.. jeg er ikke sikker på dette er grunden men min funktion ser således ud:

function opdelArray(dato, juliansk, navn, antal, size) {
    my_date = new Date();
    year = my_date.getFullYear();
    var j = 0;
    var k = 0;
    fest_data = new Array(size);
    fest_data[0] = year;
    for (var i = 0; i<size; i++) {
        temp = dato[i].split("-");
        if (fest_data[j] == temp[2]) {
            fest_data[j][k] = ""+dato[i];
            fest_data[j][k] = new Array(1);
            fest_data[j][k][0] = ""+juliansk[i];
            fest_data[j][k][0] = new Array(1);
            fest_data[j][k][0][0] = ""+navn[i];
            fest_data[j][k][0][0] = new Array(1);
            fest_data[j][k][0][0][0] = ""+antal[i];
            k++;
        } else {
            j++;
            k = 0;
            fest_data[j] = ""+temp[2];
            fest_data[j] = new Array(size);
            fest_data[j][k] = ""+dato[i];
            fest_data[j][k] = new Array(1);
            fest_data[j][k][0] = ""+juliansk[i];
            fest_data[j][k][0] = new Array(1);
            fest_data[j][k][0][0] = ""+navn[i];
            fest_data[j][k][0][0] = new Array(1);
            fest_data[j][k][0][0][0] = ""+antal[i];
            k++;
        }
    }
    trace(fest_data)
}


trace(fest_data) giver noget ligende 2005,undefined,23  det virker lidt tomt.. mine data der bliver loaded eksternt(bliver splittet op og sendt til funktionen) ser sådan ud:

&dato=01-01-2005,10-01-2005
&juliansk=1,10
&navn=fest1,fest2
&antal=10,23

håber nogen kan se hovede og hale i det her..

tak på forhånd
Avatar billede rohaje Nybegynder
30. januar 2005 - 11:53 #1
//lidt svært og se hvad du gerne vil f.eks:   
fest_data[j][k] = new Array(1);
//sletter linien der kommer lige før :
fest_data[j][k] = ""+dato[i];

// resten kører efter samme mønster,, du tilføjer variabler du over skriver med new Array(),, så hvidt jeg kan se :)
Avatar billede barklund Nybegynder
30. januar 2005 - 12:23 #2
Altså, som rohaje siger, kan man ikke skrive:

var test = "hej";
var test = new Array();  // nu er den ikke "hej", men et array

Enten er det en streng, eller også er det et array. Den kan ikke være begge dele.

Derudover virker det ikke som den mest optimale struktur - prøv at forklare, hvad du vil, og hvad det skal kunne (uden at snakke actionscript'sk, men blot dansk), og lad os tage den derfra. :)

--
Morten Barklund
Avatar billede gobbles Nybegynder
30. januar 2005 - 14:42 #3
Joo nu I siger det kan jeg godt se det er lidt svært....:)

jeg er ved at lave galleri plug in til vores studiebar.. og det var egentligt lavet men med et hav af arrays der skulle løbes igennem, jeg ville så gerne kunne tygge den igennem lidt hurtigere og have det samlet på et sted så jeg kan kan parre dem.. dato[1] hører sammen med juliansk[1] navn[1] og antal[1]
jeg har som sagt de her strenge jeg henter ind

&dato=01-01-2005,10-01-2005
&juliansk=1,10
&navn=fest1,fest2
&antal=10,23

datoen skal bruges til et link hvor billedet ligger, de julianske til at tegne et punkt på en 365 pix lang streg, navn er navnet på festen og antal hvor mange billeder der ligger(så jeg kan oprette containere til dem) hvordan ville det så være smartest at lave arrayet..
Avatar billede barklund Nybegynder
30. januar 2005 - 23:31 #4
Jamen er det ikke smartede med:

fester = new Array();
fester[0] = {dato: dato, juliansk: juliansk, navn: navn, antal: antal};
// osv...

Altså et array af objekter indeholdende fest-beskrivelser - det er da ret simpelt?

--
Morten Barklund
Avatar billede gobbles Nybegynder
31. januar 2005 - 00:18 #5
Som når man sætter en dataprovider til en komponent.... jo det er da meget smarterer..
kan jeg fylde den op på denne måde..

fester = new Array();
fester[i] = {dato: dato[i], juliansk: juliansk[i], navn: navn[i], antal: antal[i]};

nu havde jeg jo i det gamle script et par linier der splittede dato strengen og fandt ud af hvilket årstal den tilhørte... humlen er at jeg har en dropdownmenu hvor man vælger årstallet så jeg skal have de enkelte fester puttet ind i et årtals array bagefter.. så jeg har arrays der hedder aar_2003 aar_2004 og hvad der nu ellers er, disse skal så indeholde ex. alle fester for 2003 sådan at alle oplysninger til den første fest 2003 ligger i den her.. 

aar_2003[0] = {dato: dato[0], juliansk: juliansk[0], navn: navn[0], antal: antal[0]};

osv.. troede jeg var forvirret før...  hvordan kalder jeg så de her objekter.. hvis jeg skal bruge juliansk[0] for aar_2003[0] som i overstående...
Avatar billede barklund Nybegynder
31. januar 2005 - 01:15 #6
Så laver du dit array multidimensionelt med årstal som yderste key:

årstal = (beregning af årstal ud fra dato);
if (fester[årstal] == undefined) {
    fester[årstal] = new Array();
}
fester[årstal].push({dato: dato[i], juliansk: juliansk[i], navn: navn[i], antal: antal[i]});

Så hvis du vil finde navnet på første fest i 2003 er det:

trace(fester[2003][0].navn);

Eller hvis det er antal billeder:

trace(fester[2003][0].antal);

Og så videre... :)
Avatar billede gobbles Nybegynder
31. januar 2005 - 17:06 #7
Det er jo lige til højre´benet og en del mere simpel end den anden metode..

Tak for hjælpen smid endeligt et svar
Avatar billede barklund Nybegynder
31. januar 2005 - 18:21 #8
Yesh yesh :)

Hvis du har problemer med at implementere det, så spørg endelig igen :)
Avatar billede gobbles Nybegynder
31. januar 2005 - 18:26 #9
der kører en lille demo på www.jydebaren.dk under galleri, men den er med de 1000 arrays og hver gang man vælger et nyt årstal skal den ind i basen og spørge og bagefter tilbage i flash og køre alle arrays igennem igen, det var jo bedre hvis man bare henter alle data på en gang og så kan finde rundt i dem med et array...

går det fremad med actionscript.dk ?
Avatar billede barklund Nybegynder
31. januar 2005 - 18:31 #10
Ja, det er jo ikke for praktisk.

Jeg smider lige et svar også :)

Og mht. http://actionscript.dk, så tag et kig. Den er faktisk helt i live og fuldt funktionel - bare ikke så stor endnu!

--
Morten Barklund
Avatar billede barklund Nybegynder
31. januar 2005 - 18:31 #11
Ih
Avatar billede gobbles Nybegynder
31. januar 2005 - 18:37 #12
Jamen måske man skulle til at stille sine spørgsmål der.. det er mest af vane jeg kommer her, har aldrig været vild med point konceptet...man kunne jo mistænke nogen for at kommer her for point og ikke for at hjælpe og dele.. :)
Det kunne være rart med en dansk flash side der er ligeså god som flashkit.com
Avatar billede barklund Nybegynder
31. januar 2005 - 18:42 #13
Nu er det ikke flashkit, jeg er gået efter, men derimod et scripting forum - primært. Men man kan jo lave alle de tutorials, som man måtte have lyst til - også grafiske og alt mulig andet. Men du er velkommen - der skal nok komme nogle flere med tiden :)
Avatar billede barklund Nybegynder
31. januar 2005 - 18:42 #14
Og tark for points :)
Avatar billede gobbles Nybegynder
31. januar 2005 - 18:46 #15
Jamen jeg har da været medlem i nogle uger nu.. jeg er ved at lave en lille tutorial
til den velkendte "slide" funktion som jeg selv bruger på min egen side, den kunne jeg jo dele der.
Avatar billede gobbles Nybegynder
04. februar 2005 - 18:45 #16
Hej Barklund jeg fik jo lov at spørge igen, nu hvor det stort set er færdigt viser det sig at den sidst tilføjede fest altid bliver slettet..eller ikke slettet men tom..

jeg valgte at implementere det på denne måde, hvorfor bliver den sidste dato "pushed" ud..


aar = this.aar.split(",");
        dato = this.dato.split(",");
        juliansk = this.juliansk.split(",");
        antal = this.antal.split(",");
        navn = this.navn.split(",");
        fester = new Array();
        size = aar.length;
        for (var i = 0; i<size; i++) {
            aarstal = aar[i];
            if (fester[aarstal] == undefined) {
                fester[aarstal] = new Array();
            }
            fester[aarstal].push({dato:dato[i], juliansk:juliansk[i], navn:navn[i], antal:antal[i]});
        }
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