[JS] Tweedimensionale array vullen

Pagina: 1
Acties:
  • 349 views sinds 30-01-2008
  • Reageer

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 21-12 02:22

Bergen

Spellingscontroleur

Topicstarter
Kben nu al tijden aan het zoeken hoe je een tweedimensionale array in Javascript vult. Als ik P&W napluis kom ik overal de de structuur tegen als:
code:
1
2
3
4
5
6
7
8
9
var gegevens = new Array();
gegevens[0][0] = "8943 GL";
gegevens[0][1] = "Emmen";
gegevens[1][0] = "3489 PM";
gegevens[1][1] = "Den Hoag";
gegevens[2][0] = "1234 AA";
gegevens[2][1] = "Zandvoort";
gegevens[3][0] = "5518 MF";
gegevens[3][1] = "Maastricht";

Maar kan zo'n array niet meteen in de declaratie gevuld worden? Zoiets als:
code:
1
2
3
var gegevens = new Array ((1,2,3),(4,5,6),(7,8,9));
of:
var gegevens = new Array[3] ((1,2,3),(4,5,6),(7,8,9));

Als we dan iets opvragen met bijv. getal = gegevens[0,2]; dan pakt ie niet bepaald een 3 dus het lijkt niet echt te kloppen. Anyone?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 27-12 19:40

Pelle

🚴‍♂️

P&W != voor javascripting.

JS kent overigens geen echte 3 dimensionale arrays, maar wel iets dat er erg op lijkt:
code:
1
2
3
4
5
6
bla =   new Array(
      new Array(5, 6),
      new Array(7, 8));
    
alert(bla[0][1]); // geeft 6
alert(bla[1][0]); // geeft 7

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06 17:07

OzBoz

.:.H.:.I.:.P.:.

JS.. move naar W&G

My Fizion | My 3D prints | LinkedIn


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 23:21

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Hmm, wordt er een typisch W&G-topic geopend in P&W, zijn de eerste twee replys van W&G... We denken toch niet aan verhuizen, P+O? :P

Maar goed, om maar even ontopic te komen, een tijdje geleden had ik hetzelfde probleem, voor hetzelfde doeleinde. Toen had ik het opgelost door zoiets te doen:
code:
1
2
3
var adres = new Array();
adres[0] = "Piet Paulusma|Weerweg 17|1234 ab hilversum";
adres[1] = enz enz

alles dus in één array-regel zetten. Daarna haal je ze uit elkaar d.m.v. de split-functie:
code:
1
adres[0].split("|")

Dan heb je een array met de naam, straat en pc+wp. Ik zal even verder kijken of ik er nog iets van kan maken...

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Als de array 'hardcoded' is, gewoon zo?
code:
1
var gegevens = [["8943 GL","Emmen"],["3489 PM","Den Hoag"],["1234 AA","Zandvoort"],["5518 MF","Maastricht"]];

Gemiddelde Nederlanders zijn maar halve Nederlanders.


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 23:21

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Dit werkt dus
code:
1
2
3
4
5
6
7
8
9
10
11
12
<SCRIPT language=javascript>
var adres = new Array();
adres[0] = "Piet Paulusma|Blaatweg 17|1234 xy Hilversum";
adres[1] = "Witteman|Studio 3|6343 df Aalsmeer";

for(var y=0; y<adres.length; y++){
 for(var x=0; x<3; x++){
  document.write(adres[y].split("|")[x]+"<br>");
 }
 document.write("<hr>");
}
</SCRIPT>

:)

edit: in goede context
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<SCRIPT language=javascript>
// het aantal regels is het voorkomen van '|'+1, dus hieronder is het 2
var aantalregels = 2;
var adres = new Array();
adres[0] = "8943 GL|Emmen";
adres[1] = "3489 PM|Den Hoag";
adres[2] = "1234 AA|Zandvoort";
adres[3] = "5518 MF|Maastricht";

for(var y=0; y<adres.length; y++){
 for(var x=0; x<aantalregels; x++){
  document.write(adres[y].split("|")[x]+"<br>");
 }
 document.write("<hr>");
}
</SCRIPT>

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 27-12 19:40

Pelle

🚴‍♂️

Op donderdag 28 februari 2002 13:41 schreef cjs het volgende:
Als de array 'hardcoded' is, gewoon zo?
Precies, is het zelfde principe als mijn oplossing. Per array-element zul je dus direct de array-elementen moeten definieren van de onderliggende dimensie.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 18-12 14:38
Die oplossing met split heb ik idd ook een keer gebruikt.. gebruik nu objects, dus voor ieder item van de array een object aanmaken en daar de gegevens in plaatsen..

Heb er laatst een topic voor geopend.. even zoeken dan dus

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 21-12 02:22

Bergen

Spellingscontroleur

Topicstarter
Inderdaad, zoals die hardcoded manier wilde ik het dus graag hebben, maar die lijkt hier niet te werken. Dit stukje code:
code:
1
2
3
4
5
6
7
8
<html><body>

    <script type="text/javascript">
        var gegevens = new Array ((1,2,3),(4,5,6));
        document.write (gegevens [0,1]);
    </script>

</body></html>

Geeft als waarde een 6 terug terwijl ik een 2 had verwacht! Als ik de haakjes vervang door [ en ] geeft hij helemaal niets terug.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 18-12 14:38
code:
1
2
3
4
5
6
7
8
<html><body>

    <script type="text/javascript">
        var gegevens = new Array ((1,2,3),(4,5,6));
        document.write (gegevens [0,1]);
    </script>

</body></html>
code:
1
2
3
4
5
6
7
<html><body>
    <script type="text/javascript">
        var gegevens = new Array ([1,2,3],[4,5,6]);
        document.write (gegevens [0][1]);
    </script>

</body></html>

?

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 21-12 02:22

Bergen

Spellingscontroleur

Topicstarter
R0bert I owe you one :o Zo werkt ie perfect!

Wat ook interessant is, is als je hem opvraagt als: document.write (gegevens [0,1]);

Dan geeft ie terug: 4,5,6

Maareh thank joe very muts!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 18-12 14:38
Wat ook interessant is, is als je hem opvraagt als: document.write (gegevens [0,1]);
Neemt ie dus alleen de het laatste cijfer, de 1 mee (gegevens[1] == gegevens[0,1])

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 21-12 02:22

Bergen

Spellingscontroleur

Topicstarter
Op donderdag 28 februari 2002 15:05 schreef r0bert het volgende:

[..]

Neemt ie dus alleen de het laatste cijfer, de 1 mee (gegevens[1] == gegevens[0,1])
Inderdaad, als je [0,1] vervangt door [1] krijg je ook 4,5,6.
Pagina: 1