eval combinatie

Status
Niet open voor verdere reacties.

stormblast

Gebruiker
Lid geworden
26 apr 2007
Berichten
37
Hallo iedereen,

Ik ben bezig met een script, maar ik kom er niet uit bij de eval functie.

Ik heb 1 vaste waarde, en 1 waarde die berekent moet worden. Deze combinatie is een arraynaam. Echter Javascript staat niet toe dat ze samengevoegd worden. Hieronder staat een stuk script. Het principe is hetzelfde:

HTML:
<script>
waarde = new Array()
waarde[0] = 'Hallo'
waarde[1] = 'Iedereen'

content = eval("waarde") + eval("[0]")

document.write(content)
</script>

Je ziet de variabele content. Deze moet ervoor zorgen (met behulp van eval), dat 'waarde' en '[0]' worden samengevoegd. Daarnaast is het ook nog eens de bedoeling dat content de waarde krijgt van 'waarde[0]'. Als je het script start krijg je mijn probleem te zien. Hij voegt ze niet samen. (er moet dus uitkomen 'hallo' en geen 'hallo,iedereen,0').

Ik heb het op allerlei manieren geprobeert, maar niets schijnt te helpen

Wie kan mij helpen?
 
Laatst bewerkt:
Het probleem zit hem erin dat je tweemaal de functie eval() gebruikt.
Het script plaatst bijgevolg de array waarde in zijn geheel in content omdat je geen index aan het array hebt toegevoegd. De array wordt met een komma tussen elk element weergegeven. De waarde [0] wordt dan ook geëvalueerd en toegevoegd aan de variabele content.
Daardoor krijg je als resultaat hallo,iedereen0

Als je alles samenvoegt voor je de eval functie gebruikt wordt alles tesamen geëvalueerd en zal het resultaat zijn zoals je dat wil, namelijk: hallo

Dus eigenlijk moet je instructie er zo uitzien:
Code:
content = eval("waarde" + "[0]")
 
PHP:
<script>
waarde = new Array();
waarde[0] = 'Hallo';
waarde[1] = 'Iedereen';

content = waarde[0];
document.write(content);

// document.write(waarde[0]);
</script>
:)
 
Hallo iedereen.

Egel, jou antwoord is juist hetgene wat ik niet wou;) . Het moet echt via de eval functie, wegens een andere berekening die ik moet maken.

MerlinTheGreat, jou antwoord was precies wat ik zocht, maar ik kwam na een aantal keer prutsen al aan het antwoord voor jou post. Toch erg bedankt voor je reactie (zo hebben andere bezoekers er ook wat aan :P).

BTW dat 2 keer eval wist ik, ik had het ook al op andere manieren geprobeert, maar ik kwam (uiteindelijk) tot hetzelfde antwoord als jou.
 
Laatst bewerkt:
Egel, jou antwoord is juist hetgene wat ik niet wou;) . Het moet echt via de eval functie, wegens een andere berekening die ik moet maken.
Ah, op die manier.
PHP:
<script>
 var waarde = new Array('Hallo','Iedereen');

 var a = 'waa', b = 'rde';
 var content = eval(a + b)[0];
 document.write(content);
</script>
kan dan ook nog. :)


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan