Je souhaite vérifier ma fonction si un argument passé de type objet est vide ou non. Parfois, il est vide mais pas encore nul, donc je ne peux pas compter sur une condition nulle. Y a-t-il une propriété comme 'longueur'/'taille' pour les objets flex que je peux utiliser ici. S'il vous plaît aider. Merci d'avance.Pour vérifier si un objet est vide ou non
Répondre
Si vous voulez dire si un objet n'a pas de propriétés:
var isEmpty:Boolean = true;
for (var n in obj) { isEmpty = false; break; }
Merci pour l'aide, il était vraiment utile, mais nous ne pouvons toujours pas avoir une méthode intégrée comme: "myObj.length"/"myObj.isEmpty" Merci encore. – Ashine
Vous allez devoir étendre la classe 'Object' ou la classe' Dictionary' pour obtenir une méthode "intégrée" pour cela :) – Amarghosh
Il y a monkeypatching, mais ça casse pour .. dans les boucles, ce qui ... bien .. . tu sais. –
Ceci est un bidouille grave mais vous pouvez utiliser:
Object.prototype.isEmpty = function():Boolean {
for(var i in this)
if(i != "isEmpty")
return false
return true
}
var p = {};
trace(p.isEmpty()); // true
var p2 = {a:1}
trace(p2.isEmpty()); // false
wow, c'est un truc intéressant. Vous venez de m'envoyer dans une quête pour en savoir plus sur le membre prototype. Je ne sais pas comment je pourrais l'utiliser, mais c'est un peu intéressant de connaître. – JStriedl
J'essaie d'éviter les prototypes, car le compilateur Flex se plaint beaucoup. Et je dois admettre que je suis un addict d'auto-complétion ... – sharvey
peut-être vérifier en utilisant 'this.hasOwnProperty (i)', dans le cas d'autres membres du prototype. –
dépend de ce que votre objet est, ou plutôt ce que vous attendez à avoir. Par exemple, si votre objet est censé contenir une propriété nom appelé que vous recherchez, vous pourriez faire
if(objSomeItem == null || objSomeItem.name == null || objSomeItem.name.length == 0)
{
trace("object is empty");
}
ou si votre objet est en fait censé être quelque chose d'autre, comme un tableau que vous pourriez faire
var arySomeItems = objSomeItem as Array;
if(objSomeItem == null || arySomeItems == null || arySomeItems.length == 0)
{
trace("object is empty");
}
Vous pouvez également utiliser d'autres moyens par la réflexion, comme ObjectUtil.getClassInfo, puis énumérer les propriétés pour vérifier les valeurs de réglage .... cette aide de la classe:
import flash.utils.describeType;
import flash.utils.getDefinitionByName;
public class ReflectionUtils
{
/** Returns an Array of All Properties of the supplied object */
public static function GetVariableNames(objItem:Object):Array
{
var xmlPropsList:XMLList = describeType(objItem)..variable;
var aryVariables:Array = new Array();
if (xmlPropsList != null)
{
for (var i:int; i < xmlPropsList.length(); i++)
{
aryVariables.push(xmlPropsList[i][email protected]);
}
}
return aryVariables;
}
/** Returns the Strongly Typed class of the specified library item */
public static function GetClassByName($sLinkageName:String):Class
{
var tObject:Class = getDefinitionByName($sLinkageName) as Class;
return tObject;
}
/** Constructs an instance of the speicified library item */
public static function ConstructClassByName($sLinkageName:String):Object
{
var tObject:Class = GetClassByName($sLinkageName);
//trace("Found Class: " + tMCDefinition);
var objItem:* = new tObject();
return objItem;
}
public static function DumpObject(sItemName:String, objItem:Object):void
{
trace("*********** Object Dump: " + sItemName + " ***************");
for (var sKey:String in objItem)
{
trace(" " + sKey +": " + objItem[sKey]);
}
}
//}
}
Une autre chose à noter est que vous pouvez utiliser une simple boucle pour vérifier les propriétés d'un objet, c'est ce que fait cette fonction dumpobject.
peut utiliser utiliser la méthode hasProperty pour vérifier la longueur
var i:int = myObject.hasProperty("length") ? myObject.length: 0;
Vous pouvez également essayer:
ObjectUtil.getClassInfo(obj).properties.length > 0
La bonne chose à ce sujet est que getClassInfo vous donne beaucoup plus d'informations sur l'objet, par exemple. vous obtenez le nom de toutes les propriétés de l'objet, ce qui peut vous être utile.
Merci U :) Cela a réduit mes efforts ... – Prax
Si l'objet contient du texte mais que as3 ne le reconnaît pas comme une chaîne, convertissez-le en chaîne et vérifiez s'il est vide.
var checkObject:String = myObject;
if(checkObject == '')
{
trace('object is empty');
}
Vous pouvez directement vérifier comme suit,
var obj:Object = new Object();
if(obj == null)
{
//Do something
}
J'étole ce d'une question similaire relative à JS. Il nécessite FP 11+ ou une bibliothèque JSON.as.
function isEmptyObject(obj){
return JSON.stringify(obj) === '{}';
}
- 1. Javascript: Vérifier si un objet n'a pas de propriétés ou si est vide
- 2. Python - Vérifie si un fichier est vide ou non
- 3. vérifier si NSNumber est vide
- 4. Aide! Vérifier si un champ est vide
- 5. Comment vérifier si jQuery datepicker est vide?
- 6. AS3: Vérifier si un dictionnaire est vide
- 7. Comment vérifier si un objet est nul
- 8. Comment savoir si un contenu iframe est vide ou non?
- 9. Pour vérifier si la session est disponible ou non
- 10. vérifier si les données sont déjà dans la table, ou pour vérifier la table est vide
- 11. Comment vérifier si un objet est défini?
- 12. Comment vérifier si un lien est actif ou non?
- 13. Comment vérifier la grille vue est vide ou non
- 14. Comment vérifier si une méthode python est liée ou non?
- 15. Comment vérifier si un objet est nul
- 16. vérification champ caché est vide ou non
- 17. Quelle est la "méthode clojure" correcte pour vérifier si une collection est non vide
- 18. comment vérifier si le plist est vide
- 19. En utilisant jQuery, comment vérifier si une cellule de table est vide ou non?
- 20. Si UITextField ou NSString est vide
- 21. Comment vérifier si un tableau est vide en PHP?
- 22. Comment vérifier si WordprocessingDocument est vide?
- 23. ASP.NET [Comment vérifier si SqlDataSource1 est vide]
- 24. Vérifier si un objet a le focus
- 25. Vérifier si une URL existe ou non
- 26. jQuery pour vérifier si l'objet de données renvoyé est vide
- 27. Vérifier si [i] existe ou non
- 28. vérifier si la variable est vraie ou non
- 29. jQuery « « événements » est nulle ou non un objet » erreur, lors de l'utilisation vide() ou HTML()
- 30. Comment vérifier une chaîne si elle est ASCII ou non?
J'ai repensé votre question avec des collections. Votre question est un peu vague, vous pouvez peut-être clarifier pour obtenir des réponses plus/meilleures. Vous utilisez une instance d'objet en tant que tableau associatif? Si vous avez besoin d'un nombre, vous utilisez peut-être la classe Array à la place. Si vous décrivez un peu mieux le contexte, il sera plus facile de répondre. –
Si vous utilisez un tableau associatif, vous obtenez exactement la même chose qu'un objet. La propriété de longueur retournera toujours 0 peu importe comment faire les clés que vous remplissez. – sharvey
Je voulais dire ne pas utiliser un tableau associatif, mais changer le code pour utiliser un tableau normal. Un tableau associatif indique que vous savez quelles sont les valeurs stockées et, par conséquent, vous n'avez normalement pas besoin de compter les valeurs. Mais c'est difficile à dire sans plus de détails. –