Javascript 使用属性名称的变量定义对象

Javascript 使用属性名称的变量定义对象,javascript,variables,object-literal,Javascript,Variables,Object Literal,我在声明对象时遇到问题。当我定义一个对象并通过引用传递时,一个字符串无法识别我并失败。目标如下: markerGroups = {"america": [], "europa": [], "asia": [],"africa": [], "oceania": [] }; 好吧,这是正确的,但如果我改变,例如,“美国”​​将var amer=“美国”​​, 像这样: var amer = "america"; markerGroups = {amer: [], "europa": [], "a

我在声明对象时遇到问题。当我定义一个对象并通过引用传递时,一个字符串无法识别我并失败。目标如下:

markerGroups = {"america": [], "europa": [], "asia": [],"africa": [], "oceania": [] };
好吧,这是正确的,但如果我改变,例如,“美国”​​将var amer=“美国”​​, 像这样:

var amer = "america"; 
markerGroups = {amer: [], "europa": [], "asia": [],"africa": [], "oceania": [] };

它不起作用。如何解决这个问题?

在JavaScript中,不需要引用对象键。因此,
amer:[]
正在创建文本键“amer”

您需要使用
[]
方法来执行此操作:

var amer = "america"; 

markerGroups = {...};
markerGroups[amer] = [];

在JavaScript中,不需要引用对象键。因此,
amer:[]
正在创建文本键“amer”

您需要使用
[]
方法来执行此操作:

var amer = "america"; 

markerGroups = {...};
markerGroups[amer] = [];

在JavaScript中,不需要引用对象键。因此,
amer:[]
正在创建文本键“amer”

您需要使用
[]
方法来执行此操作:

var amer = "america"; 

markerGroups = {...};
markerGroups[amer] = [];

在JavaScript中,不需要引用对象键。因此,
amer:[]
正在创建文本键“amer”

您需要使用
[]
方法来执行此操作:

var amer = "america"; 

markerGroups = {...};
markerGroups[amer] = [];
像这样的东西

var markerGroups = {}
var amer = "america"; 
markerGroups[amer] = [];
像这样的东西

var markerGroups = {}
var amer = "america"; 
markerGroups[amer] = [];
像这样的东西

var markerGroups = {}
var amer = "america"; 
markerGroups[amer] = [];
像这样的东西

var markerGroups = {}
var amer = "america"; 
markerGroups[amer] = [];

与Python dicts不同,在JavaScript对象文本中,属性名始终是文本值,而不是表达式:
{a:“foo”}
{a':“foo”}
{a:“foo”}
都是等价的。我不知道这是否是该问题的重复,问题似乎从哪里开始,我认为答案应该从哪里结束。。(尽管如此,有很多重复项),如果有重复项,我很抱歉:(与Python dict不同,在JavaScript对象文本中,属性名始终是文本值,而不是表达式:
{a:“foo”}
{a':“foo”}
{a:“foo”}
都是等效的。我不知道这是否是该问题的重复,因为该问题似乎从我认为答案应该结束的地方开始……(尽管如此,有很多重复项),如果有重复项,我很抱歉:(与Python dict不同,在JavaScript对象文本中,属性名称始终是文本值,而不是表达式:
{a:“foo”}
{a':“foo”}
{a:“foo”}
都是等效的。我不知道这是否是该问题的重复,因为该问题似乎从我认为答案应该结束的地方开始……(尽管如此,有很多重复项),如果有重复项,我很抱歉:(与Python dict不同,在JavaScript对象文本中,属性名称始终是文本值,而不是表达式:
{a:“foo”}
{a':“foo”}
{a:“foo”}
都是等效的。我不知道这是否是该问题的重复,因为该问题似乎从我认为答案应该结束的地方开始……(尽管如此,有很多重复项),如果有重复项,我很抱歉:(非常感谢,这解决了我的问题!!非常感谢,这解决了我的问题!!非常感谢,这解决了我的问题!!非常感谢,这解决了我的问题!!