在javascript中创建数组时的奇怪行为

在javascript中创建数组时的奇怪行为,javascript,Javascript,我有以下代码 if(ssnFlag == false){ console.log(userName) userSessions.push({userName : [{"sessionId" : dsid}]}) console.log("pushing::" + JSON.stringify(userSessions[0])) } 输出是 OIC_PLAN_ADMIN_

我有以下代码

 if(ssnFlag == false){
                console.log(userName)
                userSessions.push({userName : [{"sessionId" : dsid}]})
                console.log("pushing::" + JSON.stringify(userSessions[0]))
              }
输出是

OIC_PLAN_ADMIN_OPERATIONS
pushing::{"userName":[{"sessionId":"0000MTEJon9Fs1MLIMK6yf1Ry1Ob0004vf"}]}

请注意,当用户名值为OIC_PLAN_ADMIN_OPERATIONS时,为什么在下一步中,当我希望用户名推动OIC_PLAN_ADMIN_OPERATIONS时,会推动用户名呢?您必须添加一些括号,将其转换为:

如果省略它们,则与以下相同:

 { "userName": /*...*/ }

您必须添加一些括号才能将其转换为:

如果省略它们,则与以下相同:

 { "userName": /*...*/ }

方括号的这种用法叫什么?我从来没有见过在这样的对象键中使用它们。不管怎样,我找到了。谷歌比我想象的要容易。方括号的这种用法叫什么?我从来没有见过在这样的对象键中使用它们。不管怎样,我找到了。谷歌比我想象的要容易。