En JavaScript, vous pouvez obtenir les enfants d'un nœud XML comme celui-ci ... Comment puis-je obtenir les enfants d'un objet? P> function applyData( dataSet ){
var hasChildren = false;
for(var i = 0; i < dataSet.childNodeArrayGoesHere.length; i++){
if(dataSet.detectChildNodesHere){
hasChildren = true;
}
}
if(hasChildren){
for(var j = 0; j < dataSet.childNodeArrayGoesHere.length; i++){
applyData(dataSet[j]);
}
} else {
//apply the key/value pair to an input element
$("input[name" + dataSet.propertyName + "]").val(dataSet.propertyValue);
}
}
4 Réponses :
Ce ne sont pas des enfants, vous avez créé un tableau associatif.
Les accès comme celui-ci: p>
Techniquement, JavaScript n'a pas du tout des tableaux associatifs. Juste des tableaux et des objets réguliers.
True, dans ce cas, c'est un objet utilisé comme une matrice associative.
Ce que vous cherchez sont en réalité des clés d'objet. Vous pouvez vérifier si une clé d'objet existe en l'appelant:
Vérifiez s'il est indéfini: forte > p> ou stry> p> ou si vous faites face à un cas d'utilisation où une clé OBJ La valeur peut être définie sur non définie manuellement: p>
obj.key3 === non défini code> n'est pas un bon moyen de vérifier l'existence de propriétés: Stackoverflow.com/questions/1098040/...
Je pense que cela fixe manuellement la valeur d'une clé OBJ à indéfinir est loin de la meilleure pratique
Il y a au moins 16 personnes qui ne sont pas d'accord avec vous (voir les commentaires à ma réponse). Il existe des cas d'utilisation très réels dans lesquels une propriété peut être définie sur non définie code>. La propriété peut également être définie sur
null code>, dans laquelle la comparaison de
non définie code> donnera une correspondance.
Vous pouvez itérer sur toutes les propriétés d'un objet comme celui-ci : le HasownProperty () Code> Fonction Vérifie pour vous assurer que la propriété spécifiée existe réellement dans l'objet. L'utilisation de celui-ci dans ce contexte veille à ne pas avoir de propriétés héritées. P> p>
Le pour (var i in o) code> boucle fonctionne à itérer à travers l'intégralité de l'objet, mais si vous lisez mes modifications, voir que je suis ... essentiellement ... essayer de détecter si quelque chose est un noeud d'extrémité
code> ou non pour l'appliquer à un champ de saisie
Cela ne lit pas les éléments enfants si présents. Je n'ai pas encore de réponse pour ajouter d'autres suggestions.
Vous pouvez itérer sur toutes les propriétés d'un objet récursivement comme celui-ci .
Trouver tous les Bodoms finaux, sélectionnez les balises d'entrée correspondantes par le nom et placez la valeur. p>
J'ai utilisé un objet avec seulement deux niveaux, mais il peut être utilisé avec un objet de n niveaux. p>
Veuillez vous abstenir de changer considérablement le contexte d'une question. Lorsque vous faites cela, vous rendant certaines des réponses existantes inutiles. Essayez de créer une autre question à la place.
@ates - Je comprends bien où vous allez avec cela, mais la question était juste clarifiée imo. J'ai toujours besoin de la collection de "nœuds d'enfants" pour mener à bien ma fonction.
J'ai juste besoin de détecter si une propriété est un "noeud final" essentiellement ... désolé pour l'ambiguïté.