gernot: ähnliche strings sortieren

Hallo erstmal
und dann mein Problem:

ich habe die dateinamen einiger grafiken in arrays gespeichert
SO:
["bewerb03"] = new Array()
bewerb["bewerb03"][1] = "blackflag1"
bewerb["bewerb03"][2] = "blackflagboden"
bewerb["bewerb03"][3] = "blackflagoben"
bewerb["bewerb03"][4] = "apluspcore"
bewerb["bewerb03"][5] = "apluspsork"
bewerb["bewerb03"][6] = "terratokatzinom"
...

Sortieren möchte ich das ganze nach den ersten paar zeichen (was ja nahestehend ist)
SO:
-->blackflag(1),blackflag(boden),blackflag(oben)
-->aplusp(core),aplusp(sork)
-->terrato(katzinom)

also nicht nach gleicher anzahl der gleichen zeichen sondern nach gleicher zeichenfolge am ANFANG des strings zB.:blackflag,terrato,.....

das ist mein script zum ausgeben der grafiken (mach das ganze noch mit tabellen,aber...)

SO:
es sollte zB. so sortieren, das er alle grafiken einer gleiche gruppe(zB.: black flag)hintereinander,untereinander.... ausgibt

falls dann eine neue gruppe auftauch einfach eine <hr> dazwischen (mal fürn anfang)

function ladefotos()
{
for (var a=1;a<bild.length;a++)
{
    window.document.writeln ([bild[a]]+"<p>");
 for (i=1;i<bewerb[bild[a]].length;i++)
 {
  window.document.writeln ("<img src=bewerb/"+[bild[a]]+"_klein/"+bewerb[bild[a]][i]+".jpg>");

}
}
}

ladefotos();

na das ist doch mal eine ausführliche problembeschreibung,oder??

  1. hi,

    also nicht nach gleicher anzahl der gleichen zeichen sondern nach gleicher zeichenfolge am ANFANG des strings zB.:blackflag,terrato,.....

    mit welchen gleichen zeichen blackflag und terrato beginnen, ist mir aber unklar.

    es sollte zB. so sortieren, das er alle grafiken einer gleiche gruppe(zB.: black flag)hintereinander,untereinander.... ausgibt

    gut, "gruppe" wird also über "x gleichlautende zeichen am anfang" definiert. methoden des string-objektes wie substr() oder substring() helfen dir, darauf zu prüfen.

    falls dann eine neue gruppe auftauch einfach eine <hr> dazwischen (mal fürn anfang)

    (such-)stichwort: gruppenwechsel, eine durchaus gängige aufgabe in der programmierung.

    na das ist doch mal eine ausführliche problembeschreibung,oder??

    na ja, das ist eher eine "ich will haben"-beschreibung - wo dein _problem_ dabei liegt, wird noch recht wenig deutlich.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hallo gernot,

    nur eine Überlegung

    • du legst fest z.B Gruppe = die ersten 5 Zeichen gleich
    • du "scannst" alle Werte deinens Array, und vergleichst sie mit einen neuen Array. Das werden Deine Gruppen.
    • Gibt es die "ersten 5 buchstaben" noch nicht in diesen Array, so fügst Du sie dazu.
    • Am Ende hast Du alle Gruppen die Du brauchst
    • in einen weiteren Durchlauf adierst Du die einzelnen Grafiken in dies Gruppen.

    Verstanden ...

    Will sagen am Ende hast Du einen mehrdimensionalen assoziativen Array.

    bernd

  3. ich habe die dateinamen einiger grafiken in arrays gespeichert
    SO:
    ["bewerb03"] = new Array()
    bewerb["bewerb03"][1] = "blackflag1"
    bewerb["bewerb03"][2] = "blackflagboden"
    bewerb["bewerb03"][3] = "blackflagoben"
    bewerb["bewerb03"][4] = "apluspcore"
    bewerb["bewerb03"][5] = "apluspsork"
    bewerb["bewerb03"][6] = "terratokatzinom"
    ...

    Sortieren möchte ich das ganze nach den ersten paar zeichen (was ja nahestehend ist)
    SO:
    -->blackflag(1),blackflag(boden),blackflag(oben)
    -->aplusp(core),aplusp(sork)
    -->terrato(katzinom)

    Dazu bietet sich die allseits beliebte Funktion Array.sort() an, weitere dazuz steht auch in selfhtml an entsprechender Stelle.

    Struppi.