我从某个地方了解到,如果我有一个无序的集合(例如购买东西的列表),我应该在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