我从某个地方学到如果我有一个无序的集合(例如,要购买的东西的列表),我应该在Javascript中使用对象文字.如果我有一个有序列表(例如,按优先顺序购买的东西列表)我应该使用一个数组.
阵:
priorityList = [
"computer"
"mouse"
"pen"
]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何用对象字面量来完成?我是否应该将对象用于无序列表,或者我是否应该使用数组?
更新到答案之一:
选择1:
var things = [
{"name":"computer","price":300},
{"name":"mouse","price":20},
];
Run Code Online (Sandbox Code Playgroud)
选择2:
var things = {
"computer": {
"price": 300
},
"mouse": {
"price": 20
}
}
Run Code Online (Sandbox Code Playgroud)
我应该选择哪一个?
更新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
Run Code Online (Sandbox Code Playgroud)
在这里,我们看到所有项目应该是唯一的无序列表对于选择2原因是好的,即使我错误地提供了多个唯一项目,它只获得其中一个,并且它不关心订单.
但是在选择1中,即使我有相同的物品,它们也被视为单独的物品,并且都打印出来.并且似乎它是有序的,因为没有办法获得一个项目而不用[0],[1],[2]等迭代它.
这是否证明当你想拥有独特的物品时,选择2会更好?
它更多的是数据结构的复杂性.如果你有一个原始的东西列表,如字符串,使用一个数组(无论它是否有序).如果您有更复杂的数据结构,需要键/值对,请使用对象文字.
如果要存储元数据,例如:
var things = [
{"name":"computer","price":300},
{"name":"mouse","price":20},
];
Run Code Online (Sandbox Code Playgroud)
一个数组是不够的,因为我有很多信息存储在每个对象中...但我把它们作为数组的子节点.因此,如果您要存储的信息不仅仅是项目本身,请使用对象文字.
如果您具有类似关联数组的结构,请同时使用对象文字:
var person = {
age: 23,
walk: function(){},
name: "john"
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |