Thanks for the quick answer!
I will try it ;)

Thanks
Tobias

-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von thron7
Gesendet: Dienstag, 1. Juli 2008 14:36
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] general js-question

Tobias Koller (GERMO GmbH) wrote:
>
> Hi list,
>
> one simple question:
>
> I want to define an object like:
>
> var test = {
>
> "abc" : {
>
> "test1" :{
>
> },
>
> "test2" :{
>
> }
>
> },
>
> "myTest" :{
>
> "x1" : {
>
> }
>
> }
>
> }
>
> That is just an example ;) .
>
> Now I want to use variables instead of real text for the 
> identifiers....is this possible?
>
> Of course I could make it like:
>
> var test = {};
>
> var var1 = "abc";
>
> var var2 = "myTest";
>
> test[ var1 ] = {
>
> "test1" :{
>
> },
>
> "test2" :{
>
> }
>
> };
>
> test[ var2 ] = :{
>
> "x1" : {
>
> }
>
> }
>
> But this is not really how I want to make it.
>
> Is there no other way to use variables for identifiers?
>

I'm afraid no. Object literal syntax uses identifiers or strings in key 
positions, so whatever you put there will be interpreted "as is". I 
think there is no built-in way to evaluate the identifier first. So what 
is left to you is to do it yourself, either by defining the map as a big 
string with '%N' in it, and then run qx.lang.String.format() over it to 
interpolate the variables and then eval() the string. Or write a 
processing function that takes the initial object, traverses it, and 
replaces keys with their eval'd value wherever possible (which might 
make for a nice generic function). So with vars like
a1='hugo';
a2='berti';
t = {a1:1, a2;2};
you would do something like
for (x in t){
if (eval(x)){t[eval(x)]=t[x]; delete t[x]} // needs error handling, but 
you get the idea
}
which should leave you with
t = {'hugo':1, 'berti':2}

HTH,
Thomas

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to