MSDN fait référence à l' abstraction de la collection Set de JavaScript . J'ai un tableau d'objets que je voudrais convertir en un ensemble afin de pouvoir supprimer ( .delete()
) divers éléments par nom:
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
Comment convertir ce tableau en un ensemble? Plus précisément, est-il possible de le faire sans itérer sur le tableau ci-dessus? La documentation est relativement insuffisante (suffisante pour les ensembles instanciés; pas pour les conversions - si possible).
Je pense peut-être aussi à la conversion en Map , pour suppression par clé. Ce que j'essaie d'accomplir, c'est une collection itérative qui peut être consultée ou modifiée en accédant aux éléments principalement via une clé (par opposition à l'index).
La conversion d'un tableau à l'autre étant le but ultime.
la source
{"bob", "dole"}
n'est pas un objet valide.Set
etMap
sont une implémentation "pure" de ces constructions de données qui ne souffrent pas des problèmes qu'unObject
peut rencontrer lorsque des éléments sont ajoutés à son prototype.Réponses:
Passez simplement le tableau au constructeur Set. Le constructeur Set accepte un
iterable
paramètre. L'objet Array implémente leiterable
protocole, c'est donc un paramètre valide.Vois ici
la source
Si vous commencez par:
Et vous voulez un ensemble de, disons, des noms, vous feriez:
la source
Ce que levi a dit à propos de sa transmission au constructeur est correct, mais vous pouvez également utiliser un objet.
Je pense que ce que Veverke essaie de dire, c'est que vous pouvez facilement utiliser le
delete
mot - clé sur un objet pour obtenir le même effet.Je pense que vous êtes confus par la terminologie; Les propriétés sont des composants de l'objet que vous pouvez utiliser comme indices nommés (si vous voulez y penser de cette façon).
Essayez quelque chose comme ceci:
Ensuite, vous pouvez simplement faire ceci:
La structure de l'objet serait alors la suivante:
Ce qui a le même effet.
la source
Par définition, "Un ensemble est une collection de valeurs, où chaque valeur ne peut apparaître qu'une seule fois". Ainsi, si votre tableau a des valeurs répétées, une seule valeur parmi les valeurs répétées sera ajoutée à votre ensemble.
Donc, ne convertissez pas en set si vous avez des valeurs répétées dans votre tableau.
la source