我從某個地方瞭解到,如果我有一個無序的集合(例如購買東西的列表),我應該在Javascript中使用對象字面值。如果我有一個有序列表(例如按優先順序購買的東西列表),我應該使用一個數組。Javascript中有序集合的無序集合和數組的對象?
陣:
priorityList = [
"computer"
"mouse"
"pen"
]
我的問題是怎麼會是這樣一個對象文本做了什麼? 這是正確的,我應該使用對象的無序列表,或者我應該使用它的數組呢?
UPDATE答案之一:
選擇1:
var things = [
{"name":"computer","price":300},
{"name":"mouse","price":20},
];
選擇2:
var things = {
"computer": {
"price": 300
},
"mouse": {
"price": 20
}
}
哪一個我應該選擇?
更新2到答案之一:
var ulist = {
"bar": {
"price": 12
},
"baz": {
"price": 12
},
"bar": {
"price": 12
}
}
for(item in ulist) {
console.log(item); // bar baz
}
var olist = [
{"name": "bar"},
{"name": "baz"},
{"name": "bar"}
]
console.log(olist[0].name); // bar
console.log(olist[1].name); // baz
console.log(olist[2].name); // bar
這裏,我們看到無序列表,其中的所有項目應該是唯一的好同選擇2的原因,即使我錯誤地設置了多個獨特的項目它只是變得之一他們,並不關心訂單。
但是在選擇1中,即使我具有相同的項目,它們也會被視爲單獨的項目,並且全部都會打印出來。而且它似乎也是有序的,因爲如果沒有用[0],[1],[2]等迭代它就沒有辦法獲得物品。
這是否證明選擇2更適合當你想要有獨特的項目?
所以我不應該依賴我的數組和對象之間的選擇,它是否是一個無序或有序列表? – ajsie 2010-11-13 22:36:46
在我看來,是的。 – 2010-11-13 22:37:10
由於您編輯了,如果您要爲每個項目存儲元數據,我會選擇1。 – 2010-11-13 22:41:35