意外标记d'当尝试将对象添加到Javascript对象数组时

'Unexpected token d' when trying to add objects to a Javascript Object array

本文关键字:对象 添加 Javascript 数组 意外      更新时间:2023-09-26

我在hotKeyService中有一个空对象,如下所示:

{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: {} } ]