mysjkin Skrevet 26. september 2006 Skrevet 26. september 2006 finnes det noen måte å bruke en set operator i en if javascript? jeg prøvde med if (!name in('id','addby','addtime')) {...} men fikk feilmeldingen 'Invalid in operand 'addtime' så det var ikke måte å finne ut at en variabel ikke var en av flere strenger... er det noen annen måte å unngå en drøss med and'er eller or'er i if'en min? M.
tZar Skrevet 27. september 2006 Skrevet 27. september 2006 names = new Array('id','addby','addtime'); if (name in names) { //gjøre noe } else { //gjøre noe annet } Burde vel fungere
mysjkin Skrevet 28. september 2006 Forfatter Skrevet 28. september 2006 Aaah, sånn, ja. burde jo ha tenkt på den varianten... Takker! M.
mysjkin Skrevet 8. november 2006 Forfatter Skrevet 8. november 2006 Hmm, jeg fikk endelig testet det, men det virker ikke... Dvs, den slår aldri til, hiddenFields= new Array('id','addby','addtime'); if ( field in hiddenFields){ alert('hidden: '+field); }else{ ... } kommer aldri til alert, derimot if ( field == 'id' || field=='addtime' || field == 'addby'){ alert('hidden: '+field); }else{ ... } gjør som jeg forventer. Er det noe jeg har misforstått? M:
dabear Skrevet 8. november 2006 Skrevet 8. november 2006 Hm, snedig. Ser ut til at in-operatøren kun sjekker hvor mange indexer det er i arrayet. Prøv dette i browseren din si adresselinje javascript:alert(0 in new Array('yo', 'hey')) javascript:alert(1 in new Array('yo', 'hey')) javascript:alert(2 in new Array('yo', 'hey')) javascript:alert(3 in new Array('yo', 'hey')) De siste gir false, fordi det ikke finnes noe element nummer 2 eller 3 i arrayet (kun element 0 ('yo') og 1 ('hey')). én måte å løse dette på, kan være å bruke .prototype attributet, men det får jeg komme tilbake til seinere..
mysjkin Skrevet 8. november 2006 Forfatter Skrevet 8. november 2006 Har du noe sted en beskrivelse av hvordan js sin in-operator virker? Å google etter 'in' er ikke tingen.. Hmm. får vrenge systemet og sette opp en assosiative array med det jeg er på jakt etter som keys. M.
dabear Skrevet 8. november 2006 Skrevet 8. november 2006 http://developer.mozilla.org/en/docs/Core_...ecial_Operators
dabear Skrevet 8. november 2006 Skrevet 8. november 2006 Nå er jeg tilbake på mi ega maskin, så nå kan jeg komme med et eksempel, se her: <script type="text/javascript"> Array.prototype.has_key = function(searchKey) { len = this.length for(i=0; i < len; i++){ if(this[i] == searchKey) return true } return false } hiddenFields= new Array('id','addby','addtime') search = 'addtime' if ( hiddenFields.has_key(search)){ alert('hidden: '+search); }else{ alert('nope') } </script>
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå