2010-01-04 4 views
10

Est-il possible de créer littéralement un objet à la volée? Comme ceci:Littéral d'objet dynamique en 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 : "" 
    } */ 
} 

Ainsi je veux que le résultat soit comme ceci:

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

Répondre

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

J'ai aussi pris la liberté de l'optimisation de votre boucle :)

+1

Encore plus de compa ct serait 'pour (var i dans arr) {literal [arr [i]] = ''; } ':) –

+7

@Tatu, vous ne devriez pas parcourir les tableaux en utilisant la construction' for..in'. – James

+2

Mieux serait 'var i = arr.length; while (i--) {literal [arr [i]] = "quelque chose"} ' –

4

Utilisez dans votre boucle:

literal[arr[i]] = ""; 
Questions connexes