2010-12-14 31 views

Répondre

2

Utilisez un tableau lorsque vous souhaitez stocker une collection d'objets d'un même type et qui appartiennent logiquement ensemble.

Y a-t-il quelque chose de spécifique dont vous vous interrogiez?

Les tableaux sont utiles lorsque vous voulez utiliser tous les éléments connexes (en boucle), accéder aux éléments par index et trier.

+0

non. Juste confus quant à ce que les applications pratiques d'un tableau contre un objet. Je pense que le terme s'appelle 'use-cases' ... pour utiliser un peu de jargon. –

0

Vous utilisez souvent des tableaux lorsque vous souhaitez commander et indexer une série d'éléments connexes.

9

Lorsque vous devez dépendre de l'ordre des éléments de la collection, utilisez les tableaux, lorsque la commande n'est pas importante, utilisez des objets. L'ordre n'est pas garanti dans les objets, mais ils permettent des recherches rapides de paires clé-valeur.

7

J'utiliserais un Array [] quand je fais face à une liste d'objets du même type * (comme une liste de chaînes) que je veux l'ordre et un Object {} quand j'ai affaire à quelque chose que je veux propriétés de (et les propriétés sont de types différents, généralement).

Par exemple:

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

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

* Ceci est juste ma préférence. Les tableaux peuvent contenir des éléments de plusieurs types différents.

5

Ils sont juste différents data structures, ils servent à des fins différentes. ArrayétendObject et fournit des propriétés comme length et des méthodes comme push() et pop(). Pensez à un objet comme une table de hachage et un tableau sous la forme d'une liste.

E.g. vous pouvez utiliser des tableaux en tant que file d'attente ou en tant que pile, ce qui ne serait pas possible avec des objets. D'un autre côté, si vous souhaitez stocker des données et que vous souhaitez accéder directement à une donnée spécifique, vous utiliserez un objet.

En fin de compte, il se résume à la question quelle structure de données est la bonne pour le travail. Peut-être qu'aucun d'entre eux n'est et vous auriez besoin d'un arbre à la place (qui peut être mis en œuvre via des objets).

3

Objects sont un bon candidat si vous avez une clé unique.

Exemple Array par rapport 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; 
    } 

Comme vous pouvez le voir trouver un objet est beaucoup plus cher avec un array (boucle).En utilisant un object vous n'aurez pas accès à toutes les méthodes d'assistance array (sort/push/etc) mais vous pouvez toujours itérer les propriétés d'un objet en utilisant une boucle for...in.

2

Les clés d'objets sont des chaînes; les clés de tableau sont des entiers. Les objets JavaScript sont des cartes (String -> anything) et les tableaux sont des listes (collections ordonnées de anything).

Cela aide-t-il?