Avatar billede KlausEC Nybegynder
10. november 2009 - 15:17 Der er 5 kommentarer

fra et array-format til et andet

Hej,

jeg har et javascript array i følgende format:
[ [ [t1, v1], [t2, v4], [t3, v6] ], [ [t1, v2], [t2, v5], [t3, v7] ], [ [t1, v3], [t2, v6], [t3, v8], [t3, v9] ] ] (eksempel - vil normalt variere i størrelse)

Jeg vil gerne lave det om til at have følgende format:
[ [t1, [v1, v2, v3] ], [t2, [v4, v5, v6] ], [t3, [v6, v7, v8, v9] ] ]

Men jeg kan ikke lige gennemskue, hvordan den skal drejes. nogle forslag? (det skal selvfølgelig ske med løkker, således, at størrelsen på det første array kan variere.
Avatar billede erikjacobsen Ekspert
10. november 2009 - 15:49 #1
Hvis jeg har forstået dig rigtigt:

    var a=[ [ ['t1', 'v1'], ['t2', 'v4'], ['t3', 'v6'] ], [ ['t1', 'v2'], ['t2', 'v5'], ['t3', 'v7'] ], [ ['t1', 'v3'], ['t2', 'v6'], ['t3', 'v8'], ['t3', 'v9'] ] ] ;
    var b = [ ];

    for each (var t in a) {
      for each(var s in t) {
        var found=false;
        for (var i=0;i<b.length;i++) {
          if (b[i][0]==s[0]) {
            b[i][1].push(s[1]);
            found=true;
          }
        }
        if (!found) {
            b.push([s[0],[s[1]]]);
        }
      }     
     
    }
    alert(b);
Avatar billede erikjacobsen Ekspert
10. november 2009 - 15:52 #2
Nå ja, "for each" kræver vist en nyere version af javascript, men du kan bare lave dem om til en almindelig for-løkke.
Avatar billede KlausEC Nybegynder
10. november 2009 - 15:54 #3
det ser sq ud til, at det var det, jeg skulle bruge - spot on! :D
Tak for hjælpen :)

Og lav endelig et svar, så jeg kan smide nogle points efter dig! :)
Avatar billede erikjacobsen Ekspert
10. november 2009 - 15:57 #4
Jeg samler slet ikke på point, tak. Svar selv og accepter dit eget svar.

"for each" er vist javascript 1.6 - det er ikke så udbredt, i visse kredse.
Avatar billede KlausEC Nybegynder
10. november 2009 - 16:26 #5
jeg lader den være åben - så kan du lave et svar, hvis du engang skulle få lyst til at modtage pointene.
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