Um zu überprüfen, ob ein Objekt leer ist oder nicht
Möchte ich überprüfen, in meiner Funktion, wenn eine übergebene argument vom Typ object ist leer oder nicht. Manchmal ist es leer, aber immer noch nicht null, somit kann ich Sie sich nicht auf die null-Bedingung. Gibt es eine Eigenschaft wie 'Länge'/'size' für flex-Objekte, die ich hier nutzen haben können.
Bitte helfen Sie.
Vielen Dank im Voraus.
Ich retagged Ihre Frage mit Sammlungen. Sie Frage ist ein bisschen vage, vielleicht können Sie clearify es um mehr/bessere Antworten. Verwendung einer Objekt-Instanz als ein assoziatives array? Wenn Sie brauchen, eine Anzahl, vielleicht verwenden Sie die Array-Klasse statt. Wenn Sie beschreiben den Zusammenhang ein bisschen besser wird es leichter sein, Sie zu beantworten.
Wenn Sie ein assoziatives array verwenden, erhalten Sie genau das gleiche wie ein Objekt. Die Eigenschaft length immer 0 zurück, egal, wie die Tasten, die Sie füllen.
Ich meinte nicht mit ein und assoziatives array, aber ändern Sie den code, um ein gewöhnliches array handelt. Ein assoziatives array zeigt an, dass Sie wissen, welche Werte gespeichert werden, und daher sind Sie normalerweise nicht brauchen, um zu zählen. Es ist aber schwer zu sagen ohne weitere Details.
Wenn Sie ein assoziatives array verwenden, erhalten Sie genau das gleiche wie ein Objekt. Die Eigenschaft length immer 0 zurück, egal, wie die Tasten, die Sie füllen.
Ich meinte nicht mit ein und assoziatives array, aber ändern Sie den code, um ein gewöhnliches array handelt. Ein assoziatives array zeigt an, dass Sie wissen, welche Werte gespeichert werden, und daher sind Sie normalerweise nicht brauchen, um zu zählen. Es ist aber schwer zu sagen ohne weitere Details.
InformationsquelleAutor Ashine | 2009-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du meinst, ob ein Objekt hat keine Eigenschaften:
Sie sind gonna haben, um verlängern die
Object
Klasse oder dieDictionary
Klasse, um eine "eingebaute" Methode 🙂Es ist monkeypatching, aber das bricht der for .. in-Schleifen, die... naja... du weißt schon.
ObjectUtils.leer(obj) funktioniert besser
Ahh, ich war auf der Suche nach ObjectUtils.
InformationsquelleAutor Simon Buchan
Dies ist einige ernsthafte hack, aber Sie können verwenden:
Ich versuche zu vermeiden, Prototypen, da der flex-compiler beschwert sich viel. Und ich muss zugeben, ich bin eine auto-completion-Süchtigen...
möglicherweise sehen Sie mit
this.hasOwnProperty(i)
, bei anderen Prototyp-Mitglieder.InformationsquelleAutor sharvey
Können Sie auch versuchen:
Das gute daran ist, dass getClassInfo gibt Ihnen viel mehr Informationen über das Objekt, wie zB. erhalten Sie die Namen aller Eigenschaften in das Objekt, das in handliches kommen könnte.
InformationsquelleAutor Robert Bak
Wenn das Objekt beinhaltet auch einige 'text' aber as3 nicht erkennen, es als einen String, konvertiert Sie zu einem string und prüfen, ob es leer ist.
InformationsquelleAutor Taro
Hängt davon ab, was Ihr Gegenstand ist, oder vielmehr das, was Sie erwarten, es zu haben. Zum Beispiel, wenn Ihr Gegenstand enthalten soll, eine Eigenschaft mit dem Namen name, die Sie suchen, Sie tun könnten,
oder wenn sich Ihr Objekt eigentlich sollte etwas anderes sein, wie ein array, das Sie tun konnte,
Konnte man auch mit anderen Möglichkeiten, durch Reflexion, wie ObjectUtil.getClassInfo, dann Durchlaufen Sie die Eigenschaften zu überprüfen, Einstellwerte.... diese Klasse Hilfe:
Andere Sache zu beachten ist, können Sie eine einfache for-Schleife für die Prüfung durch die Objekte, die Eigenschaften, das ist was es dumpobject Funktion tut.
InformationsquelleAutor JTtheGeek
Können Sie direkt überprüfen Sie wie folgt,
InformationsquelleAutor Kans
Ich habe dieses aus einer ähnlichen Frage im Zusammenhang mit JS. Es erfordert FP 11+ oder JSON.als Bibliothek.
InformationsquelleAutor Eddie
verwenden können, verwenden Sie die hasProperty Methode zu überprüfen, für die Länge
Die Art, wie ich es lese ist, dass er nicht wusste, ob gab es eine length-Eigenschaft hat oder nicht.
InformationsquelleAutor AndrewB