在 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
}
我正在尝试创建一个包含嵌套属性的 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
}