对象数组与嵌套对象?

Ris*_*ran 9 javascript arrays object

我有一个非常基本的编程问题,我希望你可以了解一下.

我现在正在处理很多对象,我想知道在对象数组内或嵌套对象内搜索内容是否更好?

例如,我可以通过以下两种方式存储相同的数据样本:

data1 = [ 
{ "id":1, "key1: "value1", "key2:"value2"},
{ "id":2, "key1: "value1", "key2:"value2"},
{ "id":3, "key1: "value1", "key2:"value2"},
{ "id":4, "key1: "value1", "key2:"value2"},
.....
]
Run Code Online (Sandbox Code Playgroud)

data2 = {
"id_1": { "key1: "value1", "key2:"value2"},
"id_2": { "key1: "value1", "key2:"value2"},
"id_3": { "key1: "value1", "key2:"value2"},
"id_4": { "key1: "value1", "key2:"value2"},
.....
}
Run Code Online (Sandbox Code Playgroud)

现在要求从子对象获取某个属性.而我们所知道的是与它相关的id(而不是索引).

如果我要使用数组方法,我将不得不使用循环和数组过滤器来访问单个对象中的任何内容/值.这种方法看起来相当麻烦,并且遍历每个子对象对我来说效率非常低.然而,每当我看到有经验的程序员实现类似的数据样本时,他们似乎都使用了很多数组.

如果我使用嵌套对象方法,我所要做的就是调用data2.id_2.key2以获取该特定值.

这是推荐的做事方式?我将使用相当大的数据集,因此,选项会有更好的性能吗?

Dmi*_*okh 5

这是一个没有错误答案的问题。两种情况都足够好。视情况而定。您应该考虑一下语义。您返回元素数组(即用户列表等)还是仅返回其中包含许多属性的对象?我猜这个结构应该取决于数据。但是请记住,按属性访问object.property要比快array[index]