gpt4 book ai didi

javascript - Javascript 中无序集合的对象和有序集合的数组?

转载 作者:行者123 更新时间:2023-11-29 17:31:05 28 4
gpt4 key购买 nike

我从某个地方了解到,如果我有一个无序集合(例如,要购买的元素 list ),我应该在 Javascript 中使用对象字面量。如果我有一个有序列表(例如,按优先顺序购买的元素列表),我应该使用数组。

数组:

priorityList = [
"computer"
"mouse"
"pen"
]

我的问题是如何用对象字面量来完成这件事?我应该为无序列表使用对象,还是我也应该为它使用数组,这是正确的吗?

更新到其中一个答案:

选择 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 更适合您想要拥有独特元素的情况?

最佳答案

更多的是数据结构的复杂性。如果您有一个原始事物列表,例如字符串,请使用一个数组(无论它是否有序)。如果您有需要键/值对的更复杂的数据结构,请使用对象字面量。

如果您要存储元数据,例如:

var things = [
{"name":"computer","price":300},
{"name":"mouse","price":20},
];

一个数组是不够的,因为我在每个对象中存储了很多信息……但我将它们作为一个数组的子元素保存。因此,如果您要存储的信息不仅仅是项目本身,请使用对象字面量。

如果你有类似关联数组的结构,也可以使用对象字面量:

var person = {
age: 23,
walk: function(){},
name: "john"
};

关于javascript - Javascript 中无序集合的对象和有序集合的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175074/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com