2010-12-14 17 views

risposta

2

Utilizzare una matrice quando si desidera archiviare una raccolta di oggetti di un tipo e che appartengono logicamente.

C'è qualcosa di cui ti stavi chiedendo?

Gli array sono utili quando si desidera operare su tutti gli elementi correlati (looping), accedere agli elementi per indice e per l'ordinamento.

+0

no. Semplicemente confuso su quali siano le applicazioni pratiche di un array rispetto a un oggetto. Penso che il termine sia chiamato "casi d'uso" ... per usare un po 'di gergo. –

0

Spesso si utilizzano gli array quando si dispone di una serie di articoli correlati che si desidera ordinare e indicizzare.

9

Quando è necessario dipendere dall'ordine degli elementi nella raccolta, utilizzare le matrici, quando l'ordine non è importante, utilizzare gli oggetti. L'ordine non è garantito negli oggetti, ma forniscono rapide ricerche di coppie di valori-chiave.

7

Vorrei usare uno Array [] quando ho a che fare con un elenco di oggetti dello stesso tipo * (come un elenco di stringhe) di cui voglio l'ordine e uno Object {} quando ho a che fare con qualcosa che voglio proprietà di (e le proprietà sono di tipi diversi, di solito).

Ad esempio:

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

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

* Questa è solo la mia preferenza. Le matrici possono contenere elementi di più tipi diversi.

5

Sono solo diversi data structures, servono a scopi diversi. ArrayestendeObject e fornisce proprietà come length e metodi come push() e pop().

Pensare a un oggetto come tabella hash e array come elenco.

E.g. puoi usare gli array come coda o come uno stack che non sarebbe possibile con gli oggetti.

Dall'altro lato se si desidera memorizzare i dati e si desidera accedere direttamente a un dato specifico, si utilizzerà un oggetto.

Alla fine si riduce alla domanda quale struttura dati è quella giusta per il lavoro. Forse nessuno di loro è e avresti bisogno di un albero invece (che può essere implementato tramite oggetti).

3

Objects sono un buon candidato se si dispone di una chiave univoca.

Esempio 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; 
    } 

Come si può vedere di trovare un oggetto è molto più costoso con una array (anello).Usando un object non avrai accesso a tutti i metodi di supporto(ordinamento/push/ecc.) Ma puoi ancora iterare le proprietà di un oggetto usando un ciclo for...in.

2

Gli oggetti chiavi sono stringhe; le chiavi dell'array sono numeri interi. Gli oggetti JavaScript sono mappe (String -> anything) e gli array sono elenchi (raccolte ordinate di anything).

Questo aiuto?

Problemi correlati