2010-12-14 11 views

Respuesta

2

Utilice una matriz cuando desee almacenar una colección de objetos que son de un tipo y que lógicamente pertenecen juntos.

¿Hay algo específico por lo que se esté preguntando?

Las matrices son útiles cuando desea operar en todos los elementos relacionados (bucle), acceder a los elementos por índice y clasificarlos.

+0

no. Simplemente confundido en cuanto a cuáles son las aplicaciones prácticas de una matriz frente a un objeto. Creo que el término se llama 'casos de uso' ... para usar alguna jerga. –

0

A menudo usa matrices cuando tiene una serie de elementos relacionados que desea pedir e indexar.

9

Cuando necesite depender del pedido de los elementos en la colección, use matrices, cuando el orden no es importante, use objetos. El orden no está garantizado en los objetos, pero proporcionan búsquedas rápidas de pares clave-valor.

7

Utilizaría un Array [] cuando estoy tratando con una lista de objetos del mismo tipo * (como una lista de cadenas) que quiero el orden de y un Object {} cuando estoy tratando con algo que quiero propiedades de (y las propiedades son de diferentes tipos, por lo general).

Por ejemplo:

var numberNames = ["one","two","three","four"]; 

var computer = { 
    motherBoard : "mother", 
    psu : psu_object(), 
    ram : { 
      ram1 : GB, 
      ram2 : TwoGB 
    } 
}; 

* Esta es sólo mi preferencia. Las matrices pueden contener elementos de múltiples tipos diferentes.

5

Son simplemente diferentes data structures, sirven para diferentes propósitos. ArrayextiendeObject y proporciona propiedades como length y métodos como push() y pop().

Piense en un objeto como una tabla hash y una matriz como una lista.

E.g. puede usar matrices como cola o como una pila que no sería posible con los objetos.

Por otro lado, si desea almacenar datos y desea acceder directamente a un dato específico, usaría un objeto.

Al final todo se reduce a la pregunta cuya estructura de datos es la correcta para el trabajo. Tal vez ninguno de ellos lo es y, en su lugar, necesitarías un árbol (que puede implementarse a través de objetos).

3

Objects son un buen candidato si tiene una clave única.

Ejemplo Array vs Object:

var item = { id: '123', prop1: 456 }; 

var obj = {}, arr = []; 

// add to object 
obj[item.id] = item; 

// add to array 
arr.push(item); 

// get from object 
var got = obj[item.id]; 

// get from array 
var got; 
for(var i = 0; i < arr.length; i++) 
    if(arr[i].id == item.id){ 
     got = arr[i]; 
     break; 
    } 

Como se puede ver la búsqueda de un objeto es mucho más caro con un (circular) array.Utilizando un object no tendrá acceso a todos los métodos auxiliares array (ordenar/presionar/etc.) pero aún puede iterar las propiedades de un objeto usando un bucle for...in.

2

Las teclas de objetos son cadenas; las teclas de matriz son números enteros. Los objetos JavaScript son mapas (String -> anything) y las matrices son listas (colecciones ordenadas de anything).

¿Eso ayuda?

Cuestiones relacionadas