对象数组与嵌套对象?

我有一个非常基本的编程问题,我希望你能说明一下。

我现在正在处理很多对象,并且想知道是在搜索对象数组中的内容还是嵌套对象内搜索内容更好?

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

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"},
.....
]

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"},
.....
}

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

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

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

推荐的做事方式是什么? 我会玩相当大的数据集,所以选项会有更好的表现吗?


这是一个没有错误答案的问题。 这两种情况都足够好。 取决于案件。 你应该思考语义。 你是否返回元素数组(即用户列表等),或者只是在内部有很多属性的对象? 我想这个结构应该取决于数据。 但请记住,属性object.property访问比array[index]快。


了解对象与数组以及何时使用它们

  • 什么是对象,它们与Javascript中的数组有什么不同?
  • 什么时候使用一种优势?
  • 数组:数组带有几个非常有用的本地方法。 我们可以使用push()向现有数组实例添加一个新元素,并通过pop()从数组中删除最后一个元素。 我们也可以使用splice()来删除n个元素和/或在索引i处插入新的元素。

    对象:将对象视为关联数组,即键 - >值对的列表。 这些键被称为对象属性。

    检查属性或值是否存在

    数组:通常当我们使用数组时,我们不关心索引和更多关于值的问题。 我们使用Arrays执行的常见操作之一是检查数组中是否存在某个值。 这很容易使用indexOf()方法完成。

    对象:与数组相比,我们通常想知道对象是否包含某个属性。 通常我们将编写一个函数,将Object作为参数,并期望它包含一组特定的属性。 这个对象可以来自API或其他代码片段,我们不应该依赖它具有我们期望的所有属性。 在访问属性后面的值之前检查属性是否存在总是一个好主意。 对象带有hasOwnProperty()方法,可以让我们做到这一点。

    从这里提取

    链接地址: http://www.djcxy.com/p/21907.html

    上一篇: Array of Objects vs Nested Object?

    下一篇: How to instantiate FSDataInputStream with raw InputStream?