当前位置: 首页 > 知识库问答 >
问题:

使用变量作为对象键[重复]

萧麒
2023-03-14

我希望将变量插入到对象键结构中,但我只得到变量名,而不是变量值。

var winnerId = 10;
var loserId = 11;        

newMessage.setMessageData({
  winnerId : {
    "status" : "win",
    "choice" : playerData[winnerId]["currentChoice"],
    "newScore" : playerData[winnerId]["score"]
  },
  loserId : {
    "status" : "lost",
    "choice" : playerData[loserId]["currentChoice"],
    "newScore" : playerData[loserId]["score"]
  }           
});

共有1个答案

鲁华皓
2023-03-14

您应该使用计算属性名称:

newMessage.setMessageData({
    [winnerId]: {
        "status": "win",
        "choice": playerData[winnerId]["currentChoice"],
        "newScore": playerData[winnerId]["score"]
    },
    [loserId]: {
        "status": "lost",
        "choice": playerData[loserId]["currentChoice"],
        "newScore": playerData[loserId]["score"]
    }
});
 类似资料:
  • 声明这样的对象时: 它抛出以下错误: 但是,使用任何其他变量名(例如,)都可以正常工作。为什么?

  • 问题内容: 我想使用变量的值来访问对象。 假设我有一个名为myobject的对象。 我想用此名称填充变量,然后使用该变量访问对象。 例: 问题答案: 全球: 全球:v2 本地:v1 本地:v2

  • 问题内容: 为什么下面的工作? 而这不起作用: 更清楚地说:目前,我无法将CSS属性作为变量传递给animate函数。 问题答案: 是有效的对象文字。该代码将创建一个对象,其属性名为,值为10。以下两项相同: 在ES5及更早版本中,不能在对象文字中使用变量作为属性名称。您唯一的选择是执行以下操作: ES6 将 _ComputedPropertyName_定义为对象文字语法的一部分,这使您可以编写如

  • 如果我有: 如何在myKey上访问myObj?

  • 问题内容: 我有需要转换为Java对象的JSON。我需要处理的JSON如下所示: 在搜索引擎(在本例中为“ Jobs”)中输入搜索关键字时,将返回此JSON。我还没有命名这些要创建的变量,这个JSON只是从类似的早期应用程序中“送给”我的。因此,我显然在保存变量和抽象变量方面遇到麻烦。抽象是一个保留关键字,在我读过的任何地方,保留关键字都不能用作变量名。 我无法访问正在更新的以前的应用程序,我想指

  • 问题内容: 编码: 对象数据: 问题: 正确显示“ 2009-05-27 16:36:45”。 正确显示“ A5A50000”。 报告“ data.bsID未定义”。 报告“数据[bsID]未定义”。 我不清楚何时/不评估变量。也许我忽略了一些愚蠢的事情,但是我无法在这里解决我的问题。 问题答案: 您可以通过点表示法或括号表示法访问对象属性。 具有动态值时,必须使用后者: 因此,您真正想要的是: