我有這兩個數據結構,我不斷地發現自己從數據庫中提取數據時之間進行選擇:數據結構有關最佳做法的獨特的ID
{
"1": {"location": "seattle", "color": "red"},
"2": {"location": "irvine", "color": "blue"},
"3": {"location": "san diego", "color": "green"}
}
{
"listings":[
{"id": "1", "location": "seattle", "color": "red"},
{"id": "2", "location": "irvine", "color": "blue"},
{"id": "3", "location": "san diego", "color": "green"}
]
}
每個似乎有利弊...
對象結構非常適合用於通過說obj['3'].color
快速訪問給定值的值,當列出所有對象時,您必須循環使用看起來非常緩慢的for(key in obj)
循環。
使用for(var i=0; i<array.length; i++)
時,陣列結構循環得更快,但是訪問賦予id的值並不容易。你必須建立一個函數,循環遍歷整個數組,檢查id與提供的參數。
這是兩種解決方案的jsperf。
你認爲哪個更好?爲什麼?
您有一個JavaScript對象和數組,但沒有JSON。如果您將數據作爲JSON傳輸到客戶端,那很好,但是一旦數據被解析,您就不再處理JSON了。 – 2012-04-02 11:11:53
這是一回事。假設服務器返回解析爲JSON的對象或解析爲JSON的數組。 – alnafie 2012-04-02 11:13:55
不是。 JSON是一種數據交換格式,而JavaScript數組或對象是JavaScript中的數據類型。不要被類似的語法誤導。如果你的問題是要弄清楚什麼是你的目的最好的數據結構,那麼它根本與JSON無關。 – 2012-04-02 11:17:14