所以你的問題是,你認爲你在使用數組的時候正在使用hashmap。所以當你寫這樣的東西:
var data= [{
'123': [{'a': 10, 'b': 20, 'c': 30, 'd': 40}],
'456': [{'a': 1, 'b': 2, 'c': 3, 'd': 4}]
}];
console.log(data["123"])
你會得到一個錯誤,因爲你試圖索引一個數組與字符串。正如你通過查看你的data
對象所看到的那樣,它是一個包裝hashmap的數組(這實際上是不必要的)。如果你真的打算使用這個對象正確,你需要寫
var data= [{
'123': [{'a': 10, 'b': 20, 'c': 30, 'd': 40}],
'456': [{'a': 1, 'b': 2, 'c': 3, 'd': 4}]
}];
console.log(data[0]["123"])
,它將打印[{'a': 10, 'b': 20, 'c': 30, 'd': 40}]
。
如果你想要一個新的密鑰分配到data[0]["123"]
,因爲你裹在數組中的值,以及,你需要寫
var data= [{
'123': [{'a': 10, 'b': 20, 'c': 30, 'd': 40}],
'456': [{'a': 1, 'b': 2, 'c': 3, 'd': 4}]
}];
data[0]["123"][0]["assigned_at"] = 52 //or w/e you want here
我建議下探圍繞你的價值觀[]
包裝並且只寫
var data= {
'123': {'a': 10, 'b': 20, 'c': 30, 'd': 40},
'456': {'a': 1, 'b': 2, 'c': 3, 'd': 4}
};
data["123"]["assigned_at"] = 52 //or w/e
哪個會起作用。我認爲你只是通過增加[]
來讓你自己有點混淆你的價值觀。
嘗試數據[0] ['123'] – Jaaaaaaay
看起來'data'是一個包含單個對象的數組,其中包含一個對象,該對象返回時保存着鍵'123','456'。這是一個錯字嗎? 哦,'123'和'456'又是隻有一個對象的數組 - 所以完整路徑是:'data [0] [123] [0] [「a」]' – yoshi