在 Javascript 中为 Google Adwords 脚本 (ES5) 动态创建嵌套对象 属性 名称

Creating Nested Object Property Names Dynamically in Javascript for Google Adwords Scripts (ES5)

我正在尝试创建一个包含嵌套属性的 javascript 对象,其中一些 属性 名称需要动态生成。以下是我已经在使用的内容:

postObject[campaignObj.campaignName] = {
    "campaignSet" : {
      "groupName" : groupObj.adGroupName,
      "textads" : groupObj.textAds
    }
}

但是,我需要 "campaignSet" 从变量或其他对象值动态命名。存在多个活动集的可能性,这些活动集必须全部包含在 postObject[campaignObj.campaignName].

我的想法是像下面的选项这样的东西应该有效

postObject[campaignObj.campaignName] = {
    [campaignObj.campaignSet] : {
      "groupName" : groupObj.adGroupName,
      "textads" : groupObj.textAds
    }
}

但是上面的代码一直抛出 "Invalid property ID" 错误。

所以我尝试了这个

postObject[campaignObj.campaignName] = {
    campaignObj.campaignSet : {
      "groupName" : groupObj.adGroupName,
      "textads" : groupObj.textAds
    }
}

这导致了 "Missing : after property ID"。

我觉得这应该很简单,但它仍然让我难以理解。任何帮助将不胜感激。

应该这样做:

postObject[campaignObj.campaignName] = postObject[campaignObj.campaignName] || {}; // in case is not defined

postObject[campaignObj.campaignName][campaignSetDynamicName] = {
  "groupName" : groupObj.adGroupName,
  "textads" : groupObj.textAds
}