var obj = { key: value1, key: value2}
我想重複,並得到(鍵和值1)和(鍵和值2)JavaScript的:如何循環訪問對象有兩個相同的密鑰(並獲得兩個值)
如果收杆我使用簡單的循環:
for (var i in obj){
console.log(obj[i])
}
我: 關鍵值2 關鍵值2
這樣的obj [I]總是最後一個關鍵
var obj = { key: value1, key: value2}
我想重複,並得到(鍵和值1)和(鍵和值2)JavaScript的:如何循環訪問對象有兩個相同的密鑰(並獲得兩個值)
如果收杆我使用簡單的循環:
for (var i in obj){
console.log(obj[i])
}
我: 關鍵值2 關鍵值2
這樣的obj [I]總是最後一個關鍵
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);
這是不可能的。 正如聲明:
var obj = { key: value1, key: value2}
最初obj.key設置爲value1
,在第二分配value1
改寫爲value2
,所以,obj.key現在value2
。
所以你不能訪問初始值。
謝謝你我錯了) – WHITECOLOR
是的,謝謝你,我是這麼做的。 – WHITECOLOR