That Guy
Meubilair
- Lid geworden
- 28 nov 2006
- Berichten
- 5.010
Yow,
Zoals gewoonlijk was ik rustig bezig met 2d tile engines, kwam ik plots op dit rare geval. Aanschouw eerst eens de code:[JS]
var superEvalFunctie = function(data) /* niet de daadwerkelijke constructie, maar het gaat om het idee */
{
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
data = data.replace('[','').replace(']','');
return data.split(',');
}else
if(data == 'false')
{
return false;
}else
if(data == 'true')
{
return true;
}else
if(data.match(/^[-]?\d*\.?\d*$/) != null)
{
return parseFloat(data);
}
return data; /* eet string! */
};[/JS]nu werkt dit in alle gevallen goed, behalve het array gedeelte:[JS]//via de manier dat ik het wil:
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
data = data.replace('[','').replace(']','');
return data.split(',');[/JS][JS]//zo werkt ie wel:
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
return eval(data);[/JS]nu heb ik even wat gechecked (via de normale eval() functie), maar beide (custom & eval()) zijn van het type 'object' en beide zijn een array met dezelfde waardes. Maar toch werkt het niet goed. Weet iemand toevallig waarom?
:thumb:
Zoals gewoonlijk was ik rustig bezig met 2d tile engines, kwam ik plots op dit rare geval. Aanschouw eerst eens de code:[JS]
var superEvalFunctie = function(data) /* niet de daadwerkelijke constructie, maar het gaat om het idee */
{
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
data = data.replace('[','').replace(']','');
return data.split(',');
}else
if(data == 'false')
{
return false;
}else
if(data == 'true')
{
return true;
}else
if(data.match(/^[-]?\d*\.?\d*$/) != null)
{
return parseFloat(data);
}
return data; /* eet string! */
};[/JS]nu werkt dit in alle gevallen goed, behalve het array gedeelte:[JS]//via de manier dat ik het wil:
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
data = data.replace('[','').replace(']','');
return data.split(',');[/JS][JS]//zo werkt ie wel:
if(data.substr(0,1) == '[' && data.substr(-1) == ']')
{
return eval(data);[/JS]nu heb ik even wat gechecked (via de normale eval() functie), maar beide (custom & eval()) zijn van het type 'object' en beide zijn een array met dezelfde waardes. Maar toch werkt het niet goed. Weet iemand toevallig waarom?
:thumb:
Laatst bewerkt: