web-dev-qa-db-fra.com

Quelle est la différence entre “{}” et “[]” lors de la déclaration d’un tableau JavaScript?

Quelle est la différence entre “{}” et “[]” lors de la déclaration d’un tableau JavaScript? Normalement je déclare aimer

var a=[];

Quel est le sens de la déclaration du tableau comme var a={}

34
Venkat

Personne ne semble expliquer la différence entre un tableau et un objet.

[] Déclare un tableau.

{} Déclare un objet.

Un tableau possède toutes les fonctionnalités d'un objet avec des fonctionnalités supplémentaires (vous pouvez penser à un tableau comme une sous-classe d'un objet) où des méthodes et des fonctionnalités supplémentaires sont ajoutées dans la sous-classe Array. En fait, typeof [] === "object" Pour vous montrer davantage qu'un tableau est un objet.

Les fonctionnalités supplémentaires consistent en une propriété magique .length Qui garde une trace du nombre d’éléments dans le tableau et de toute une série de méthodes pour opérer sur le tableau, telles que .Push(), .pop(), .slice(), .splice(), etc ... Vous pouvez voir une liste de méthodes de tableau ici .

Un objet vous donne la possibilité d'associer un nom de propriété à une valeur comme dans:

var x = {};
x.foo = 3;
x["whatever"] = 10;
console.log(x.foo);      // shows 3
console.log(x.whatever); // shows 10

Les propriétés des objets sont accessibles via la syntaxe x.foo Ou via la syntaxe de type tableau x["foo"]. L’avantage de cette dernière syntaxe est que vous pouvez utiliser une variable comme nom de propriété, comme x[myvar], Et en utilisant cette dernière syntaxe, vous pouvez utiliser des noms de propriété contenant des caractères que Javascript ne permet pas dans la x.foo syntaxe.

Un nom de propriété peut être n'importe quelle valeur de chaîne.


Un tableau est un objet, il possède donc les mêmes fonctionnalités qu'un objet, plus de nombreuses fonctionnalités supplémentaires pour la gestion d'un commandé , liste séquentielle d'index numérotés commençant par 0 et allant jusqu'à une certaine longueur. Les tableaux sont généralement utilisés pour une liste ordonnée d'éléments auxquels on accède par index numérique. Et, comme le tableau est ordonné, il existe de nombreuses fonctionnalités utiles pour gérer l'ordre de la liste .sort() ou pour ajouter ou supprimer des éléments de la liste.

58
jfriend00

Quand vous déclarez

var a=[];

vous déclarez un tableau vide.

Mais quand vous déclarez

var a={};

vous déclarez un objet.

Bien que Array soit également un objet en Javascript, il s’agit de valeurs de paires de clés numériques. Qui ont toutes les fonctionnalités d'objet, mais ajouté quelques méthodes de tableau comme Push, Splice, Length et ainsi de suite.

Donc, si vous voulez, certaines valeurs pour lesquelles vous devez utiliser des touches numériques utilisent Array. sinon utiliser un objet. vous pouvez créer un objet comme:

var a={name:"abc",age:"14"}; 

Et peut accéder à des valeurs telles que

console.log(a.name);
10
Roli Agrawal
var a = [];

il est utilisé pour les crochets pour un tableau de valeurs simples. par exemple.

var name=["a","b","c"]

var a={}

est également utilisé pour les tableaux de valeurs et les objets/propriétés. par exemple.

var programmer = { 'name':'special', 'url':'www.google.com'}
4
Hemina

Cela peut être compris comme ceci:

var a= []; //creates a new empty array
var a= {}; //creates a new empty object

Vous pouvez aussi comprendre que

var a = {}; Équivaut à var a= new Object();

Note:

Vous pouvez utiliser des tableaux lorsque vous vous préoccupez de l'ordre des éléments ( du même type ) dans votre collection, sinon vous pouvez utiliser des objets. Dans les objets, l'ordre n'est pas garanti.

3
Rahul Tripathi

Syntaxe de JSON

objet = {} | { membres }

  • membres = paire | paire, membres
  • paire = chaîne: valeur

tableau = [] | [ éléments ]

  • éléments = valeur | éléments de valeur

valeur = chaîne | nombre | objet | tableau | vrai | faux | null

1
riteshkasat

En JavaScript, les tableaux et les objets sont en réalité très similaires, bien qu’à l’extérieur, ils puissent être un peu différents.

Pour un tableau:

var array = [];
array[0] = "hello";
array[1] = 5498;
array[536] = new Date();

Comme vous pouvez le constater, les tableaux en JavaScript peuvent être clairsemés (les indicateurs valides ne doivent pas nécessairement être consécutifs) et ils peuvent contenir le type any! C'est plutôt pratique.

Mais comme nous le savons tous, JavaScript est étrange, voici donc quelques éléments étranges:

array["0"] === "hello"; // This is true
array["hi"]; // undefined
array["hi"] = "weird"; // works but does not save any data to array
array["hi"]; // still undefined!

En effet, tout dans JavaScript est un objet (c'est pourquoi vous pouvez également créer un tableau à l'aide de new Array()). En conséquence, chaque index d’un tableau est transformé en chaîne puis stocké dans un objet. Un tableau n’est donc qu’un objet qui ne permet à personne de stocker quoi que ce soit avec une clé qui n’est pas un entier positif.

Alors, quels sont les objets?

Les objets en JavaScript ressemblent aux tableaux, mais l'index peut être n'importe quelle chaîne.

var object = {};
object[0] = "hello"; // OK
object["hi"] = "not weird"; // OK

Vous pouvez même choisir de ne pas utiliser les crochets lorsque vous travaillez avec des objets!

console.log(object.hi); // Prints 'not weird'
object.hi = "overwriting 'not weird'";

Vous pouvez aller encore plus loin et définir des objets comme suit:

var newObject = {
    a: 2,
};
newObject.a === 2; // true
1
Michael Eden

ce sont deux choses différentes ..

[] déclare un tableau:
donnée, une liste d’éléments contenus dans un index numérique.

{} déclare un nouvel objet:
donné, un objet avec des champs avec Noms et type + valeur,
Certains aiment à le considérer comme un "tableau associatif". mais ne sont pas des tableaux, dans leur représentation.

Vous pouvez en lire plus @ cet article

1
Tomer W