Avatar billede lequet Nybegynder
28. oktober 2002 - 05:46 Der er 6 kommentarer og
1 løsning

Finde længden af den længste streng

OK, her er en modbydelig en :)

Jeg skal bruge en funktion som tager et array som parameter. Arrayet indeholder et ukendt antal strenge. Funktionen skal så finde den længste streng i arrayet, og returnere længden af den streng, i pixels (altså bredden)...

Håber den er til at overkomme. Hvad angår browsere, behøver funktionen "kun" virke i nyere browsere som understøtter DOM, så vidt det er muligt :)
Avatar billede limemedia Nybegynder
28. oktober 2002 - 06:49 #1
on-the-fly på en live-site eller på et internt system ? at teste alle i en hidden frame/layer med en gif før og efter teksten og måle er nemt, men skal det foregå lynhurtigt på en livesite, kender jeg pt. ikke en løsning
Avatar billede limemedia Nybegynder
28. oktober 2002 - 06:51 #2
se evt. dén her
http://www.experts-exchange.com/Web/Web_Languages/JavaScript/Q_20227522.html

men igen, i livemiljø og loope et evt. halvstort array ? *hmm*
Avatar billede lequet Nybegynder
28. oktober 2002 - 07:12 #3
Tja, det er til et større DHTML script jeg roder med, og ender med at blive lagt ud til fri afbenyttelse, så i hvilken sammenhæng det bliver brugt, samt størrelsen af arrayet, er svært at bedømme

Men hvis man går ud fra at et tegn normalt er f.eks. 8px (ved ikke lige hvor bredt et tegn normalt er), så kan man vel gøre noget i denne stil

bredde = mitarray[23].length * 8 ;

Kom jeg lige til at tænke på. Men hvordan finder jeg så den længste streng, og kan den metode egentlig bruges rent praktisk?

Måske skulle jeg alligevel overveje en anden løsning :)
Avatar billede limemedia Nybegynder
28. oktober 2002 - 07:17 #4
størrelsen af teksten afhænger jo af mange ting, at gange med 8 kræver en monospace font på 8 px - det er reelt ikke en mulighed, men alligevel nok en af de eneste muligheder du har (jeg har netop lavet det samme fusk til en bratta dropdown menu). At finde længeste i et array er intet problem, den kode finder jeg til dig...
Avatar billede limemedia Nybegynder
28. oktober 2002 - 07:26 #5
Dén var der

<script language="JavaScript" type="text/javascript">
<!--
    function largestString(ary) {
        var maxLength = false;

        for (var i=0; i<ary.length; i++) {
            if (ary[i].length > maxLength.length) {
                maxLength = ary[i];
            }
        }

        return maxLength;
    }


    var content_array = new Array();  // tilføj indhold her
    alert(largestString(content_array));
//-->
</script>


funktionen returnerer selve strengen, ikke længden - hvis du ønsker længden kan
if (ary[i].length > maxLength.length) {
    maxLength = ary[i];
}

rettes til
if (ary[i].length > maxLength) {
    maxLength = ary[i].length;
}


(utestet)

/ LJ
www.ljweb.com
Avatar billede lequet Nybegynder
28. oktober 2002 - 07:28 #6
OK, takker... Tester lige og ser om det kan give et acceptabelt resultat. Ellers er der jo ikke andet for end at finde en alternativ løsning :)
Avatar billede lequet Nybegynder
28. oktober 2002 - 07:39 #7
OK, ser ud til at virke, og det kan alt i alt godt give et acceptabelt resultat tror jeg :)

Tak for hjælpen :)
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