Toon posts:

[JS] Object problemen (struct)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik wil door middel van database gevens in een (javascript) struct te stoppen het navigeren makkelijk te onderhouden hebben.

Ik heb de volgende struct gedefinieerd:
code:
1
2
3
4
myJsArray=new Object();
myJsArray["amsterdam"]=new Object();
myJsArray["amsterdam"]["item1"]="38.0";
myJsArray["amsterdam"]["item2"]="39.0";

Alleen is die naam amsterdam dus variabel, weet iemand hoe ik deze naam weer tevoorschijn toveren. Ik wil dus alleen de bovenliggende namen van een object (dus amsterdam, rotterdam, enz) in een lijstje op het scherm krijgen.
Iemand een idee?

Thanks! :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

javascript --> W&G

Verwijderd

Topicstarter
Whuh? :?

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Als je myJsArray["amsterdam"] wil aanspreken zal je toch echt die string "amsterdam" moeten gebruiken, dus die staat al ergens dan, en dan snap ik je probleem dus niet.

Als je eigenschappen van myJsArray["amsterdam"] wil uitlezen moet je die eigenschappen niet met myJsArray["amsterdam"][String] defineren maar met myJsArray["amsterdam"][int] (tenzij je voor "itemN" de N weet, ergens opslaat, of checks voor != null inbouwt), want ik dacht dat array's met String indexering (hoe heet dat eigenlijk) niet automatisch alsnog op ints geindexeerd worden, die kan je dus niet met een forloopje tot array.length uitlezen, omdat die length met String indexen op 0 blijft staan.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
Wat mijn vraag is, is of er niet een manier is om een lijstje te krijgen van alle plaatsnamen.
Met CF kan je heel gemakkelijk daarvan een lijst opvragen, dit moet toch ook met JS kunnen?

Met die lijst kan ik weer door de struct lopen om het onderliggende item te vinden.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Voor zover ik weet kun je die niet opvragen in JS. Daarvoor gebruiken we dan de [int] versie, omdat je daar onafhankelijk van lengte doorheen kan lopen.

Snap het nut van die new Objects trouwens ook niet helemaal. Bedoel je niet new Array() ? :P

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Op vrijdag schreef Jorrit:
Wat mijn vraag is, is of er niet een manier is om een lijstje te krijgen van alle plaatsnamen.
Met CF kan je heel gemakkelijk daarvan een lijst opvragen, dit moet toch ook met JS kunnen?

Met die lijst kan ik weer door de struct lopen om het onderliggende item te vinden.
wat je kan doen is een lijstje strings ff in een normale array met CF genereren. en dan die gebruiken om te zoeken.
Maar ik zou idd toch voor de int versie gaan, en daar dan stad-objecten instoppen, met bijvoorbeeld een .id property waar de stadsnaam instaat.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
Bedankt!

Ik ga nog wel even knutselen.
Ik heb nu een array functie draaien, maar die is 30% groter dan de struct versie (staan meer definities in).
Tja, performance freak he? ;)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Kan toch wel:
code:
1
for (var city in myJsArray) {        }

Intentionally left blank


Verwijderd

Topicstarter
Iets meer uitleg aub

Verwijderd

Topicstarter
Lamaar:
code:
1
for (var city in myJsArray) { document.write(city);    }

Heel gaaf!

Bedankt! :)

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

verrek! ik liep uit mijn nek te lullen met dat indexeren :D
code:
1
2
3
4
5
6
7
8
9
ding = [];

ding["een"] = "test 1"
ding["twee"] = "test 2"
ding["drie"] = "test 3"

for(var eh in ding) {
   document.write( eh + ' - '+ding[eh] +'<br>')
}

komt uit:

een - test 1
twee - test 2
drie - test 3

(maar ding.length is wel 0)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
Gewoon even een teller mee laten lopen en je hebt de lengte ook! :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Het heeft bij mij ook even geduurd voordat ik erachter kwam dat het kon. Vroeger maakte ik dan fixed een aparte array met de indexen erin die wel genummerd was.
Echter moest ik selecties toe kunnen passen. Nu loop ik dus door de array heen, selecteer degene die ik moet hebben en bouw zo on thy fly de array met indexen.
Aan het eind weet ik dan ook precies hoeveel er in de selectie zitten :)

Intentionally left blank

Pagina: 1