使用非唯一键值对读取和循环对象

时间:2013-07-05 08:07:02

标签: javascript jquery object

我有一个包含一些键/值对的对象。如果键/值对与另一个键/值对共享相同的键,则在控制台登录对象时无法识别第一个键。

例如:

var test = {
"same" : 'Value1',
"same" : 'Value2',
"different" : 'Value3'
};
console.log(test);

控制台中的结果为:

Object { same="Value2", different="Value3"}

是否无法读取具有相似键名的对象?

我正在尝试使用此方法(How do I loop through or enumerate a JavaScript object?)遍历对象,但我只能检索一个共享密钥的键/值对。

3 个答案:

答案 0 :(得分:1)

对象不能有重复的键。

因此,您无法从对象中读取重复键的原因是它们从未在对象中首先添加为两个项目。其中一项只会覆盖另一项。

答案 1 :(得分:1)

如果需要,您可以更改JSON的结构吗? JSON对象不能有重复的键。可以将其视为散列图或字典。根据语言和JSON解析器,您可能也会获得异常(不是在Javascript中)

在上面的示例中,要么更改它以便您拥有唯一键或将ti更改为值数组,如:

var test = {
"same" : ['Value1', 'Value2']
"different" : 'Value3'
};
console.log(test);

答案 2 :(得分:0)

键是唯一标识数组/对象中元素的唯一值。所以答案是否定的,你不能有两个具有相同键值的元素。