96 votes

Comment créer un ensemble en JavaScript ?

Dans Eloquent JavaScript, chapitre 4, un ensemble de valeurs est créé en créant un objet et en stockant les valeurs sous forme de noms de propriété, en attribuant des valeurs arbitraires (par exemple true) comme valeurs de propriété. Pour vérifier si la valeur est déjà contenue dans l'ensemble, l' in est utilisé :

 var set = {};

if (!'Tom' in set) { 
  set.Tom = true;
}

Est-ce du JavaScript idiomatique ? N'utiliserait-il pas encore mieux un tableau?

 var set = [];

if (!'Tom' in set) { 
  set.push = 'Tom';
}

16voto

Jonathan Newmuis Points 10958

Les ensembles n'autorisent pas les entrées en double et ne garantissent généralement pas un ordre prédéfini. Les tableaux font les deux, violant ainsi ce que signifie être un ensemble (sauf si vous effectuez des vérifications supplémentaires).

11voto

Justin Niessner Points 144953

Le premier moyen est le JavaScript idiomatique.

Chaque fois que vous souhaitez stocker une paire clé/valeur, vous devez utiliser un objet JavaScript. En ce qui concerne les tableaux, il y a plusieurs problèmes :

  1. L'indice est une valeur numérique.

  2. Pas de moyen facile de vérifier si une valeur est dans un tableau sans boucler.

  3. Un ensemble n'autorise pas les doublons. Un tableau le fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X