Avatar billede lars-k Nybegynder
10. december 2003 - 16:27 Der er 11 kommentarer og
1 løsning

If exits else

Hej

Jeg har en kode der ser om et layer eksisterer:

if (arr[i].id != custom_cal_layerName)
  ..............


Kan jeg ændre i koden, så jeg kigger i arrayet om det specifikke lag eksisterer?

Noget lign:

if lag exits så
  kode...
ellers
  kode...


lars-k:-)
Avatar billede roenving Novice
10. december 2003 - 16:53 #1
Nej, du er nødt til at bladre arrayet igennem ...
Avatar billede roenving Novice
10. december 2003 - 16:56 #2
f.eks.

var existLag = false;
for(i=0:arr.length>i;i++){
  if(arr[i].id == custom_cal_layerName)existLag = true;
}

if(existLag){
  //kode
}else{
  //kode
}
Avatar billede lars-k Nybegynder
10. december 2003 - 17:20 #3
...hmm - kan ikke få det til at virke. Jeg skal på en eller anden måde have strikket den ene løkke ind i den anden...


var existLag = false;
for(i=0:arr.length>i;i++){
  if(arr[i].id == custom_cal_layerName)existLag = true;

    if(existLag){
      //kode
    }else{
      //kode
    }
}
Avatar billede roenving Novice
10. december 2003 - 17:29 #4
Du er nødt til at færdiggøre den ene løkke først, hvis du vil vide om den eksisterer, ellers skal du:

for(i=0:arr.length>i;i++){
    if(arr[i].id == custom_cal_layerName){
      //kode
    }else{
      //kode
    }
}

-- men så kommer du forbi else-koden mange gange !-)
Avatar billede roenving Novice
10. december 2003 - 17:30 #5
Forøvrigt kan du jo bare:

if(document.getElementById('custom_cal_layerName')){
  //kode
}else{
  //kode
}
Avatar billede lars-k Nybegynder
10. december 2003 - 17:40 #6
...hmm, det virker delvis...kigger mere på det i morgen.
Avatar billede lars-k Nybegynder
11. december 2003 - 09:20 #7
Nå....mit problem er, at jeg skal igennem hele arrayet og hvis jeg støder på custom_cal_layerName, så skal jeg gøre noget andet. Scriptet kører på to sider og det virker ok, når det køres på siden, hvor dette lag findes. Det virker bare ikke på side 2, hvor dette lag ikke findes - det skal altså ignoreres...

    for (var i=0; i < arr.length; i++) {

        if (arr[i].id == custom_cal_layerName){
              //ignorere og hop videre i arrayet;
    }else{
        eval ("arr[" + i + "]" + v + " = '" + c + "'");
    }

    }
Avatar billede lars-k Nybegynder
11. december 2003 - 09:21 #8
...side 2 "kender" ikke custom_cal_layerName....
Avatar billede lars-k Nybegynder
11. december 2003 - 09:50 #9
Jeg har prøvet dette:

    try {
        (arr[i].id != custom_cal_layerName)
    } catch (e) {
        if (e instanceof TypeError)
    {
        eval ("arr[" + i + "]" + v + " = '" + c + "'");
    } else {
        eval ("arr[" + i + "]" + v + " = '" + c + "'");
    }
    }

Jeg kan dog ikke afvikle koden, hvis laget eksisterer...
Avatar billede olebole Juniormester
15. december 2003 - 02:30 #10
<ole>

Du må lave en eller flere andre fejl. Dit spørsmål er blevet besvaret rigtigt. Kan du ikke finde ud af det, må du lægge et link eller poste din kode.
Det virker i øvrigt også unødvendigt at bruge eval(). Den funktion skal du helst undgå, når du kan, da den er temmelig langsom.

/mvh
</bole>
Avatar billede lars-k Nybegynder
05. juli 2004 - 12:46 #11
..glemt at lukke denne :-(

Koden er skrevet helt om, da jeg ikke kunne tilpasse den vores nye backend.
Avatar billede roenving Novice
05. juli 2004 - 12:53 #12
-- 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

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