Array of Objects vs Nested Object?
I have a very basic programing question that i hoped you can shed a light on.
I am working a lot of objects right now and i was wondering if it is better to search for content inside an array of objects or inside a nested object?
For eg, i can store the same data sample in the following two ways:
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"},
.....
]
and
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"},
.....
}
Now the requirement is to get a certain property from a child object. And all we know is the id (and not the index) associated with it.
If i were to use the array method, i will have to use loops and array filters to access any content/value in the individual objects. This method seems rather cumbersome to be and iterating through each child object feels very inefficient to me. Yet whenever i see similar data samples being implemented by experienced programmers, they all seem to using arrays a lot.
If I were to use the nested object method, all i have to do is call data2.id_2.key2
to get that specific value.
Which is the recommended way of doing things? I will be playing with rather large datasets and so, option will have better performance?
It's a kind of question with no wrong answers. Both cases are good enough. Depends on case. You should think about the semantics. Do you return array of elements (ie list of users, etc.) or just object with a lot of properties within? This structure should depend on data, I guess. But keep in mind, that access by property object.property
is faster than array[index]
.
Understanding Objects vs Arrays and When to Use Them
Arrays: Arrays come with several, very useful native methods. We can add a new element to existing array instance using push() and remove the last element from the array via pop(). We can also use splice() to remove n elements and/or insert new element(s) at index i.
Object: Think about objects as associative arrays, ie list of key -> value pairs. These keys are referred to as object properties.
Checking if Property or Value Exists
Arrays: Generally when we work with arrays, we care less about indexes and more about values. One of the common operations we perform with Arrays is checking if a certain value is in the array. This is easily accomplished using indexOf() method.
Object: In contrast to Arrays, we generally want to know if an Object contains a certain property. Usually we will write a function that takes Object as an argument and will expect that it contains a certain set of properties. This Object can come from an API or some other piece of code and we shouldn't rely on it having all the properties we expect. It is always a good idea to check whether the property exists before accessing the value behind that property. Objects come with hasOwnProperty() method which allows us to do just that.
extracted from here
链接地址: http://www.djcxy.com/p/21908.html上一篇: Rspec / Rails:未初始化的常量ActiveSupport :: Autoload(NameError)
下一篇: 对象数组与嵌套对象?