0

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

例如:

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

控制台中的结果为:

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

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

我正在尝试使用此方法遍历对象(如何遍历或枚举 JavaScript 对象?),但我只能检索一个共享键的键/值对。

4

3 回答 3

2

一个对象不能有重复的键。

因此,您无法从对象中读取重复键的原因是,它们最初从未作为两个项目添加到对象中。其中一项将简单地覆盖另一项。

于 2013-07-05T08:12:50.820 回答
1

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

在上面的示例中,要么将其更改为具有唯一键,要么将 ti 更改为一组值,例如:

var test = {
"same" : ['Value1', 'Value2']
"different" : 'Value3'
};
console.log(test);
于 2013-07-05T08:12:57.017 回答
0

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

于 2013-07-05T08:11:27.750 回答