24. august 2005 - 12:47Der er
14 kommentarer og 1 løsning
Vis dubletter i array
Hejsa
Hvordan kan man tjekke for dubletter i et array (uden at slette dem)? Jeg vil gerne have vist dubletter på skærmen, så jeg kan lave nogle yderligere ting med dem. Jeg har haft fat i hasDups og remDups, samt Scripting.Dictionary, men har endnu ikke fundet en løsning ...
hasDups og remDups ? Det er vist hjemmelavede funktioner :o) Du kan altid slavisk selv løbe et array igennem for at finde positioner for dubletter det er der intet problem i. Men hvis du har overvejet scripting.dictionary så skal det hele nok laves i det frem for i arrays --- en simpel men ikke perfekt manuel løsning --- for i = 0 to ubound(ditArr) for j = i+1 to ubound(ditArr)-1 if ditArr(i) = ditArr(j) then response.write "position "&i&" og "&j&" har begge samme værdi, nemlig"&ditArr(i) end if next next
hmmm... i JScript kunne du bare sorteret elementerne, gennemløbet listen og lavet en simpel sammenligning af et element med det næste. Det har dog 2 ulemper: 1. dit array bliver ændret, 2. du skal (givetvis) skifte til JScript (for en kort stund).
mit forslag er som sagt ikke perfekt! Hvis du har {1,2,1,3,1,4} Så vil du få at vide at der er match på {0,2},{0,4} og {2,4} Dvs du får flere match af vide flere gange fordi den bare løber det hele igennem fra en ende af
Klart nok! Jeg bruger selv VBScript til daglig (når jeg koder ASP), men JScript kan lige nogle småting pr. default, som VBScript ikke kan - og dem kan man jo ligeså godt benytte sig af når nu de er der :)
hvis du ikke ønsker dubletter, altså når 0=2=4 så behøves du jo faktisk kun få at vide at 0=2 og 0=4, informationen om at 2=4 er jo overflødig, så skal man gemme værdierne --- følgende kunne være en mulighed der måske --- indexer = "" for i = 0 to ubound(ditArr) if instr(indexer,i) > 0 then next end if for j = i+1 to ubound(ditArr)-1 if ditArr(i) = ditArr(j) then indexer = indexer & i & "," response.write "position "&i&" og "&j&" har begge samme værdi, nemlig"&ditArr(i) end if next next
jeg ved ikke hvor godt softspot er inde i jscript, men da jeg slet slet ikke er inde i det, og softspot ved flere lejligheder har talt godt om funktioner som kun findes i jscript, ja så er han nok bedre inde i det end jeg er ;o) Desuden er det jo forholdsvis nemt at skifte fra et script sprog til et andet, det kræver kun een linjes kode, så hvis det kan gøres lettere i jscript så synes jeg det lyder spændende :o)
Synes godt om
Ny brugerNybegynder
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.