Ключи в объектах JS должны быть уникальными.
Что происходит, это:
var obj = {
key : value1
}
устанавливает obj['key']
в value1
.
последующее объявление key : value2
перезаписывает ваш предыдущий.
Возможное решение вашей проблемы:
var obj = {
key : [value1, value2]
}
for (var i in obj)
{
if (obj[i] instanceof Array)
{
for (var k; k < obj[i].length; k++)
{
console.log(obj[i][k])
}
}
else
{
console.log(obj[i]);
}
}
Другое, возможно, более элегантное решение было бы измените способ хранения ваших данных следующим образом:
var obj = [
{ key : 'SomeKey' , value : 'foo' },
{ key : 'SomeKey' , value : 'bar' },
{ key : 'SomeOtherKey', value : 'baz' }
];
Это, очевидно, позволяет использовать несколько записей с одним и тем же ключом. Запрос можно выполнить где-то по этим строкам:
values = [];
for (var i = 0; i < obj.length; i++)
{
if (obj[i].key === 'SomeKey')
{
values.push(obj[i].value);
}
}
console.log(values);