2010-01-04 14 views
10

Ist es möglich, ein Objekt Literal im laufenden Betrieb zu erstellen? So:Dynamisches Objektliteral in Javascript?

var arr = [ 'one', 'two', 'three' ]; 

var literal = {}; 

for(var i=0;i<arr.length;i++) 
{ 
    // some literal push method here! 

    /* literal = { 
     one : "", 
     two : "", 
     three : "" 
    } */ 
} 

So möchte ich das Ergebnis so sein:

literal = { 
     one : "", 
     two : "", 
     three : "" 
    } 

Antwort

19
for (var i = 0, l = arr.length; i < l; ++i) { 
    literal[arr[i]] = "something"; 
} 

nahm ich auch die Freiheit, Ihre Schleife optimieren :)

+1

Noch mehr compa ct wäre 'für (var i in arr) {wörtlich [arr [i]] = ''; } ':) –

+7

@Tatu, sollten Sie Arrays nicht mit dem' for..in' Konstrukt durchlaufen. – James

+2

Besser wäre 'var i = arr.length; while (i--) {wörtlich [arr [i]] = "etwas"} –

4

Verwenden Sie diese in Ihrem Schleife:

literal[arr[i]] = ""; 
Verwandte Themen