Tableau JavaScript pour Définir

MSDN références JavaScript Ensemble de la collection de l'abstraction. J'ai un tableau d'objets que j'aimerais convertir en un ensemble, de sorte que je suis capable de 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 puis-je convertir ce tableau à un jeu? Plus précisément, est-il possible de le faire sans parcourir le tableau ci-dessus? La documentation est relativement défaut (suffisant pour instancié jeux; pas pour les conversions si possible).

J'ai peut-être aussi la pensée de la conversion en une Carte, pour l'enlèvement par clé. Ce que je suis en train d'accomplir, c'est un objet iterable collection qui peut être consulté ou modifié via l'accès aux éléments principalement par l'intermédiaire d'une clé (par opposition à l'index).

De Conversion à partir d'un tableau à l'autre étant le but ultime.

  • sonne comme un bon vieux Objet de travail pour vous...
  • ne pouvez-vous pas obtenir le même à l'aide d'un objet régulier et en supprimant les propriétés ? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
  • merci, a changé.
  • ne cherche pas à supprimer les propriétés. Vous cherchez à supprimer les objets, eux-mêmes.
  • donc, je suis en manque de quelque chose, que je veux apprendre. Quelle est la différence entre la var s = new Jeu(), ajout d'objets et de délivrance de s.supprimer(quoi que) et var o = {1: 'aaa', 2: 'bbbb' ... } et l'émission de supprimer(o['1']) ?
  • c'était plus descriptive que vous initial commentaire (+1). Je vous remercie. Mais, encore une fois, est-il possible de le faire sans avoir à parcourir le tableau pour que le contenu du tableau à l'objet et à conserver une liste comme clé, accessible structure? On dirait que vous avez une idée. Je ne me dérangerait pas de le voir dans un format de réponse si vous avez du temps à élaborer.
  • Je vais avoir du mal à comprendre "... pour que le contenu du tableau à l'objet... " . Pourriez-vous nous donner un exemple de scénario de ce que vous voulez accomplir et ce que vous êtes en supposant que ne fonctionnera pas ?
  • Pour être honnête, la seule différence entre un objet et un objet ordinaire est que le premier fournit une méthode claire dans son API qui supprime toutes les propriétés de l'objet - quelque chose qui nécessiterait une boucle dans un objet ordinaire. C'est donc un "nice to have" de la fonctionnalité. Autre que... quelqu'un?
  • Vous pourriez économiser quelques séquences de touches en les ajoutant avec un foreach; mais il semble que l'ECMAScript 6 définition ne comprend pas quelque chose comme ce que vous cherchez. (Par exemple, j'aurais espéré "nouvel Ensemble(item1, item2)" serait donner ce que vous cherchez.) Et oui, ne oubliez pas de assurez-vous que tous vos navigateurs préférés Set de soutien, parce que c'est ES6.
  • Cet objet array n'est pas légal, car {"bob", "dole"} n'est pas un objet valide.
  • ES6 Set et Map sont de "purs" de la mise en œuvre de ces données, les constructions qui ne souffrent pas les questions qu'un Object peut quand les choses sont ajoutés à son prototype.
  • merci! Fixe.
  • quelle est donc la signification de l'existence de trois objets distincts, chacun avec un nombre variable de clés? Qui des valeurs exactes (ou clés) vous souhaitez figurer dans la Set ?
  • Jeu ne prend pas en charge les éléments en double.
  • ni une Object.
  • nous progressons bien... 🙂
  • De toutes sortes - @Thomas - vous encore besoin d' (donnée de l'exemple de données d'entrée) pour nous dire exactement ce que les touches sont censées apparaître dans la Set.
  • L'ensemble itérateur conserve l'ordre d'insertion des éléments. L'objet n'a pas.
  • pourriez-vous incarner ? Si j'ajoute un élément à Définir, il est ajouté à la fin... à faire de même dans un simple objet, la même volonté de ne pas se produire ? Tout à droite, j'ai juste testé... et UNIQUEMENT pour les propriétés dont les noms sont des entiers d'un objet ordinaire ne suffira pas à maintenir l'ordre, plutôt, sera de commande numérique... est ce que c'est ?
  • objet de la commande n'est pas garanti. stackoverflow.com/questions/5525795/.... Un ensemble est plus proche d'un tableau que d'un objet.
  • J'ai juste ajouté un commentaire... nous deviennent plus précises, donc j'ai toujours demander: ne peut-on pas dire que la commande n'est pas garanti en raison UNIQUEMENT les cas où les propriétés sont les chaînes numériques ?
  • non, vous ne pouvez pas dire que. L'ordre n'est jamais garanti sur une Object, bien que dans une Set c'est la garantie d'être en ordre d'insertion.
  • p.s. ce est en fait principalement hors sujet pour cette question.
  • l'utilisation d'une Carte, pas un Jeu, une carte est pour les valeurs de la clé, un ensemble est juste un groupe de clés uniques, sans valeurs
  • Ce n'est pas tout à fait vrai @MartijnScheffer. Définir et Carte des collections à la fois avoir des valeurs, mais sémantiquement représenter différentes choses.medium.com/ecmascript-2015/es6-set-map-weak-a2aeb7e2d384
  • un Ensemble est un groupe de Clés, une Carte un groupe de clés et de valeurs, à partir de la description de son problème, j'en ai déduit que la Carte est ce qu'il veut

InformationsquelleAutor Thomas | 2015-03-10