Suche JS-Objekt für Wert
Sagen, ich habe ein Objekt:
userInfo
Willst und ich Suche jeden Knoten userInfo um zu sehen, ob die key 'username' hat einen Wert von foo.
userInfo[x].username == "foo"
Gibt es eine bessere Art, das zu tun?
var matchFound = false;
for (var i = 0, len = userInfo.length; i < len; i++)
matchFound = userInfo[i].username == "foo";
Das wird nicht funktionieren. Der Wert von matchFound wird ständig überschrieben.
Auch, was ist der Punkt, der
technisch sind Sie mit dem Fahrrad durch
Ich fest, dass. Ich warf gerade dieses Beispiel zusammen wirklich schnell. Die Frage ist mehr über, wie die Suche in den Objekt-und wenn es einen besseren Weg gibt.
Auch, was ist der Punkt, der
? true : false
Teil? userInfo[i].username == "foo"
bereits evaluiert zu wahr oder falsch.technisch sind Sie mit dem Fahrrad durch
Array
mit Objects
im inneren. Es gibt nicht viel besser Möglichkeiten, es zu tun. @awm, ich nehme an, er zeigt uns den pseudo-code.Ich fest, dass. Ich warf gerade dieses Beispiel zusammen wirklich schnell. Die Frage ist mehr über, wie die Suche in den Objekt-und wenn es einen besseren Weg gibt.
InformationsquelleAutor doremi | 2011-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht wirklich eine bessere (effizientere) Weise, ohne dass andere Daten-Struktur. Die Antwort hängt wirklich davon ab, Ihre Nutzung aber man kann ein paar verschiedene Dinge:
Erstellen Sie separate 'Indizes' mit hashes. Diese Strukturen anzeigen Tasten, um die Elemente, oder der index im Quell-array. JavaScript-Objekte/hashes Unterstützung von key-basierend lookup und sollte effizient sein.
Haben Sie, um in ein wenig mehr Arbeit, um Konsistenz zwischen dem index-und dem Quell-array. Es ist wahrscheinlich am besten wickeln Sie beide in einem anderen Objekt zu verwalten den Inhalt. Dieser Ansatz ist nett, wenn es mehrere Felder, die Sie wollen, zu sehen Objekte durch.
Wenn Sie kümmern sich nicht um die Reihenfolge der Auflistung könnte man einfach ändern, die ganze Sache zu einem hash-und index-Benutzernamen
Eine Sache zu denken, obwohl, ist, wenn die Effizienzgewinne gehen, überwiegen die erhöhte Komplexität des Codes der Pflege von Indizes. Wenn Sie nicht tun, eine Menge der Suchanfragen und die Sie nicht haben Tonnen von Elemente in der userinfo Sammlung kann es mehr Sinn machen, nur schreiben Sie eine Allgemeine Verwendung der Suche-Funktion oder nutzen Sie die Bibliothek wie das, was Philip Schweiger war erwähnen.
InformationsquelleAutor Peter Rebholz
Keine Notwendigkeit für die ternären operator, sollten Sie Folgendes beachten:
InformationsquelleAutor Kevin Bowersox
Den Unterstrich JS-Bibliothek hat einige praktische Methoden für die Arbeit mit Daten - Sammlungen- zum Beispiel die wählen Sie die Methode
Umsetzung würde es gerne so:
Unterstrich ist nicht sehr groß, und während Sie können dies tun, in nativen JS zu, ich denke, es macht einen guten job der Umsetzung der Lösungen, die Sie kommen würde, mit auf Ihrem eigenen. Im Grunde gibt es Ihnen eine Menge von JS-Funktionen, die Sie würden denken, sollte es jedenfalls.
InformationsquelleAutor Philip Schweiger