MSDN verweist auf die Set- Sammlungsabstraktion von JavaScript . Ich habe eine Reihe von Objekten, die ich in eine Menge konvertieren möchte, damit ich .delete()
verschiedene Elemente nach Namen entfernen kann :
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
Wie konvertiere ich dieses Array in einen Satz? Ist es insbesondere möglich, dies zu tun, ohne über das obige Array zu iterieren? Die Dokumentation fehlt relativ (ausreichend für instanziierte Sets; nicht für Conversions - wenn möglich).
Ich denke vielleicht auch an die Konvertierung in eine Karte , um sie per Schlüssel zu entfernen. Was ich versuche zu erreichen, ist eine iterierbare Sammlung, auf die zugegriffen oder geändert werden kann, indem auf die Elemente hauptsächlich über einen Schlüssel zugegriffen wird (im Gegensatz zum Index).
Die Konvertierung von einem Array in das andere ist das ultimative Ziel.
quelle
{"bob", "dole"}
es kein gültiges Objekt ist.Set
undMap
sind "reine" Implementierung jener Datenkonstrukte, die nicht unter den Problemen leiden, die eineObject
Dose hat, wenn Dinge zu ihrem Prototyp hinzugefügt werden.Antworten:
Übergeben Sie das Array einfach an den Set-Konstruktor. Der Set-Konstruktor akzeptiert einen
iterable
Parameter. Das Array-Objekt implementiert dasiterable
Protokoll, ist also ein gültiger Parameter.Siehe hier
quelle
Wenn Sie beginnen mit:
Und Sie möchten eine Reihe von beispielsweise Namen, die Sie tun würden:
quelle
Was Levi über die Übergabe an den Konstruktor gesagt hat, ist richtig, aber Sie können auch ein Objekt verwenden.
Ich denke, Veverke versucht zu sagen, dass Sie das
delete
Schlüsselwort leicht für ein Objekt verwenden können, um den gleichen Effekt zu erzielen.Ich denke, Sie sind durch die Terminologie verwirrt; Eigenschaften sind Komponenten des Objekts, die Sie als benannte Indizes verwenden können (wenn Sie es so sehen möchten).
Versuchen Sie so etwas:
Dann könnten Sie einfach Folgendes tun:
Die Struktur des Objekts wäre dann:
Welches hat den gleichen Effekt.
quelle
Per Definition "Ein Satz ist eine Sammlung von Werten, wobei jeder Wert nur einmal vorkommen darf." Wenn Ihr Array wiederholte Werte hat, wird nur ein Wert unter den wiederholten Werten zu Ihrem Set hinzugefügt.
Konvertieren Sie also nicht in set, wenn Sie wiederholte Werte in Ihrem Array haben.
quelle