使用相同的名称访问Javascript属性

使用相同的名称访问Javascript属性,javascript,Javascript,在Javascript中是否可以访问相同的命名属性 例如: var myObject = { "key1": "value1 ", "myProp" : "after key1", "key2": "value2 ", "myProp" : "after key2", } var result = ''; for (var prop in myObject) { result += "myObject." + prop + " = " + myObject[prop] + "\n";

在Javascript中是否可以访问相同的命名属性

例如:

var myObject = {
"key1": "value1 ",
"myProp" : "after key1",
"key2": "value2 ",
"myProp" : "after key2",
}

var result = '';
for (var prop in myObject) {
    result += "myObject." + prop + " = " + myObject[prop] + "\n";
  }
alert(result);
该示例仅返回第二个属性“myProp”。我需要这两个属性,并且必须找出它们是否在key1或key2之后


您可以在

下尝试此操作。您的问题不在访问中:问题是只有一个属性具有给定的名称,因此
myProp
属性的第二个定义将删除先前的属性

您可以在属性中存储阵列:

var myObject = {
    "key1": "value1 ",
    "key2": "value2",
    "myProp" : ["after key1", "after key2"],
}
您还可以寻找其他结构:

var myObjects = [
     {key: "key1", value:"value1", myProp: "for key1"},
     {key: "key2", value:"value2", myProp: "for key2"}
]

但在这里,您是唯一能够为您的应用程序选择正确设计的人。

Thx以获取答案。我很害怕。我知道其他结构。但我的对象将由lib提供的json字符串创建,我不想更改它。在将字符串解析为json之前,我可能会对其进行一些正则表达式处理。@Andreas这也是一个解决方案。但是请注意,根据,您的文本不是真正的JSON(“对象中的名称应该是唯一的”)。