Avatar billede jacobs1 Nybegynder
21. august 2006 - 11:56 Der er 7 kommentarer og
1 løsning

gennemsøg array

Jeg vil gerne have mit script til at tjekke om linket allerede findes i arrayet husker,
og hvis den ikke gør skal den oprette et link.

Jeg kan ikke lige se hvad jeg gør forkert.



var husker = [];
var navn = [dig, mig,din, min];


function find(i){

for(j=0;j<=husker.length;j++){
if (navn[i]==husker[j]) {
alert("allerede i brug")
break;
  } else {
  favoritLink.innerHTML+="<br><a href='java script:myclick("+i+")'>"+navn[i]+"</a>";
  husker.push(navn[i]);
break;
  }
}

}

find(1);
Avatar billede mclemens Nybegynder
21. august 2006 - 14:35 #1
Hjælper denne del?
var navn = ["dig", "mig","din", "min"];
Avatar billede mclemens Nybegynder
21. august 2006 - 14:40 #2
Eksemplet med find(1) lagt over i en window.onload så dom er klar ser nogenlunde sådan her ud ... bortset fra at der lige skal pilles lidt for at undgå uendeligt loop...







<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta

http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

var husker = [];
var navn = ["dig","mig","din","min"];
var favoritLink;

function find(i){

  for(j=0;j<=husker.length;j++){
    if (navn[i]==husker[j]) {
    alert("allerede i brug")
    } else {
      favoritLink.innerHTML+="<br><a href='java script:myclick("+i+")'>"+navn[i]+"</a>";
      husker.push(navn[i]);
    }
  }
}

window.onload=function(){favoritLink=document.getElementById("favoritlink");find(1);};


</script>

</head><body>
<div id="favoritlink">Favoritlink</div>
</body></html>
Avatar billede mclemens Nybegynder
21. august 2006 - 14:47 #3
Sådan :o)




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

var husker = [];
var navn = ["dig","mig","din","min"];
var favoritLink;

function find(i){

  for(j=0,j2=navn.length;j<j2;j++){
    if (navn[i]==husker[j]) {
    alert("allerede i brug");break;
    }if(j==(j2-1)){
      favoritLink.innerHTML+="<br><a href='java script:myclick("+i+")'>"+navn[i]+"</a>";
      husker.push(navn[i]);
    }
  }
}

window.onload=function(){favoritLink=document.getElementById("favoritlink");find(1);};


</script>

</head><body>
<div id="favoritlink">Favoritlink</div>
</body></html>
Avatar billede mclemens Nybegynder
21. august 2006 - 14:54 #4
- hov vendte den vist en gang på hovedet :D
Vender den lige om igen ...
Avatar billede mclemens Nybegynder
21. august 2006 - 14:56 #5
Det var vist bedre (:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

var husker = [];
var navn = ["dig","mig","din","min"];
var favoritLink;

function find(i){

  for(j=0,j2=husker.length;j<=j2;j++){
    if (navn[i]==husker[j]) {
    alert("allerede i brug");break;
    }if(j==husker.length){
      favoritLink.innerHTML+="<br><a href='java script:myclick("+i+")'>"+navn[i]+"</a>";
      husker.push(navn[i]);
    }
  }
}

window.onload=function(){favoritLink=document.getElementById("favoritlink");find(1);};


</script>

</head><body>
<div id="favoritlink">Favoritlink</div>
</body></html>
Avatar billede mclemens Nybegynder
21. august 2006 - 15:04 #6
[ Jeg kan ikke lige se hvad jeg gør forkert. ]
... Som du ser har jeg ligeså
let ved at lave noget forkert :D
- Fejlene du havde bestod i:

21/08-2006 14:35:40

... Evt. var variablen favoritLink ikke blevet knyttet til et element - eller evt. var dom til elementet ikke klart hvis koden blev kørt inden elementet var indlæst i dokumentet.

... Ved første gennemløb af din for-løkke blev den valgte værdi i husker array'et checket op imod den første værdi i navn array'et og hvis det ikke matchede blev din else kørt og udskrev et link og droppede at checke værdi nr. 2 i husker arrayet der kunne være lig den værdi der skulle findes ... derfor har jeg lagt en ekstra variabel ind (j2) der sættes til længden af husker og så har jeg rettet else til en if måling om gennemløbet (j) er lig med husker.length ... hvis det er det er der ikke fundet nogle matches i husker da break ved alert'en ville have stoppet for løkken...



... en lille rettelse til den sidste jeg lavede:
    }if(j==husker.length){
rettes til:
    }if(j==j2){
Avatar billede jacobs1 Nybegynder
23. august 2006 - 08:51 #7
jeg lukke bare sp her :) tak for hjælpen
Avatar billede mclemens Nybegynder
23. august 2006 - 10:27 #8
Velbekom, og tak for point :)
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