“意外标记d”时试图将对象添加到Javascript对象阵列

问题描述:

我有内hotKeyService如下一个空对象:“意外标记d”时试图将对象添加到Javascript对象阵列

{hotKeys: [ 
    ] 
} 

欲对象的负载添加到该阵列中,以得到形式的最终结果是:

{hotKeys: [ 
     "demoBtn1":{ 
        keyCode: 49, 
        keyShortcut: "1", 
        label: "button" 
        }, 
     "demoBtn2":{ 
        keyCode: 50, 
        keyShortcut: "2", 
        label: "button" 
        }, 
    ] 
} 

目前我的代码是:

hotKeyService.hotKeys.push(attrs.id); 
var arrayRow = hotKeyService.hotKeys.length - 1; 
var currentObj = JSON.parse(hotKeyService.hotKeys[arrayRow]); 
currentObj.keyCode = attrs.keyCode; 
currentObj.keyShortcut = attrs.keyShortcut; 
currentObj.label = attrs.label; 

点在哪里我尝试和解析JSON为currentObj,我收到错误。如果我不解析,我得到一个Cannot assign to read only property 'keyCode' of demoBtn1错误,我读的是因为对象需要解析。

如何填充对象,因为我期待?

感谢

数组没有“钥匙”(他们有寿道具,但是这是不可能的)。我相信你想用{}而不是[]

阵列由值的列表的:

[ foo, bar, baz ] 

不是一系列关键的:值对(这是为对象):

{ a: foo, b: bar, c: baz } 

在数组的值就可以了,当然,成为对象:

[ { foo: {} }, { bar: {} }, { baz: {} } ]