2016-04-11 14 views
0

Wie kann ich eine dynamische variaible in einem Hash wie folgt:Dynamische Variablen in Hash JS

key = dynamicVariaible 

plugin.varibles = { 
     [key + "1"]   : "1", 
     [key + "Ctrl-2" ]  : "2", 
} 

die Verwendung von oben Ich habe den Fehler wurde immer: ExecJS::ProgramError: Unexpected token: name (key)

+0

Wo rking here .. https://jsfiddle.net/rayon_1990/yrsna3ox/ – Rayon

Antwort

0

Sie dynamische Variable erstellen können, versuchen Sie dies:

key = "1" 

var plugin = { 
     [key + "1"]   : "1", 
     [key + "Ctrl-2" ]  : "2", 
} 

könnte es sein Problem in dynamicVariaible

+0

Gibt es eine alternative Möglichkeit, dies zu tun? Ich erhalte einen Fehler beim Kompilieren von Assets und ich habe es an die Verwendung von '[key + '1']' –

+0

angeheftet. Könnten Sie bitte einen relevanten Quellcode posten, damit wir das tatsächliche Problem untersuchen können. Ich möchte auch erwähnen, dass es in dieser Codezeile keinen Fehler gibt. –

0

versuchen auf diese Weise

var key = "2"; 
var variables = {}; 
variables[ key + "1" ]=1; 
variables[ key + "Ctrl-2" ]=2; 

Ich bin nicht sicher, wenn Sie die dynamischen Eigenschaftsnamen geben können, während das Objekt zu initialisieren.

0

In ES6, könnten Sie computed property names:

var key = 'dummy', 
 
    plugin = {}; 
 

 
plugin.variables = { 
 
    [key + '1']: "1", 
 
    [key + 'Ctrl-2']: "2", 
 
}; 
 

 
document.write('<pre>' + JSON.stringify(plugin, 0, 4) + '</pre>');

In ES5, dies als die gleiche funktionieren würde:

var key = 'dummy', 
 
    plugin = { variables: {} }; 
 

 
plugin.variables[key + '1'] = "1"; 
 
plugin.variables[key + 'Ctrl-2'] = "2", 
 

 
document.write('<pre>' + JSON.stringify(plugin, 0, 4) + '</pre>');