Toon posts:

[JS] Twee loops

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In een javascript heb ik twee loops lopen die XML uitlezen. Deze waardes wil ik combineren zodat ik één string krijg. Wanneer ik het binnen een loop uitlees, wordt alles netjes meegenomen, maar wanneer ik het buiten de loop uitlees, krijg ik alleen de laatste waarde terug.
Hoe kan ik de waardes van twee loops uitlezen een deze combineren tot één string?

Sjoerd

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Hier valt zonder code echt niks over te zeggen.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • naam
  • Registratie: Oktober 2007
  • Laatst online: 20-09 22:03
Alle waardes misschien tijdelijk in een array opslaan en later combineren?

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 11:48

André

Analytics dude

JavaScript:
1
2
3
4
5
6
7
8
for (var i = 0; i < 5; i++)
{
  for (var j = 0; j < 5; j++)
  {
    alert(i + ":" + j);
  }
}
alert(i + ":" + j);

Zoiets bedoel je? De eerste alert geeft 25 keer een andere waarde, en de laatste alleen maar eenmalig een waarde.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het volgende script leest alle xml1 en xml2 uit een schrijft deze weg:

code:
1
2
3
4
5
6
7
for (var i = 0;i<xml1.length;i++) {
    document.write(xml1[i]);
}

for (var j = 0;j<xml2.length;j++) {
    document.write(xml[j]);
}


Nu wil ik de waardes van xml1 en xml2 combineren in 1 string:

code:
1
2
3
4
5
6
7
for (var i = 0;i<xml1.length;i++) {
}

for (var j = 0;j<xml2.length;j++) { 
}

document.write(xml[j] + xml[i]);


Maar omdat het nu buiten de loop aangesproken wordt, wordt alleen de laatste waarde van deze twee loops geschreven.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dan moet je het dus doen zoals André zegt :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bij de situatie van André krijg je 25 combinaties. Wanneer ik bij beide loops 5 waardes krijg, wil ik uiteindelijk ook 5 strings die de waardes van beide loops bevatten:

1:1
2:2
3:3
4:4
5:5

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Verwijderd schreef op vrijdag 05 november 2010 @ 15:06:
Bij de situatie van André krijg je 25 combinaties. Wanneer ik bij beide loops 5 waardes krijg, wil ik uiteindelijk ook 5 strings die de waardes van beide loops bevatten:

1:1
2:2
3:3
4:4
5:5
Als de arrays een één-op-één-relatie hebben (even groot, en regel 1 bij de ene hoort bij regel 1 van de ander) kun je het natuurlijk in één loop af door beide array's met dezelfde indexer (i) aan te spreken.

[ Voor 9% gewijzigd door CodeCaster op 05-11-2010 15:09 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 24-09 17:38
Inderdaad, zijn beide XML files even groot?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het wordt uit hetzelfde XML-bestand gelezen, maar bij verschillende Tag-namen, die altijd wel een dezelfde aantal bevatten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dezelfde indexer, dat is de oplossing! Bedankt! :)

Acties:
  • 0 Henk 'm!

  • bredend
  • Registratie: September 2001
  • Laatst online: 24-09 15:14
code:
1
2
3
for (var i = 0;i<xml1.length && i < xml2.length;i++) {
 document.write(xml1[i] + xml2[i]);
}

Acties:
  • 0 Henk 'm!

  • pieturp
  • Registratie: April 2004
  • Laatst online: 18-09 15:56

pieturp

gaffa!

Overigens; je moet wel een hele goede reden hebben om het archaïsche document.write() te willen gebruiken. Gebruik liever de innerHTML property van een DOM element.

... en etcetera en zo

Pagina: 1