Javascript "pop" de l'objet
J'ai écrit le code suivant à la "pop" d'une propriété d'un objet comme si c'était un tableau. Ça ressemble à une sorte de code qui me tape plus grave, les programmeurs, donc je me demandais quelle est la bonne façon de le faire:
//wrong way to pop:
for( key in profiles ){
var profile = profiles[key]; //get first property
profiles[key] = 0; //Save over property just in case "delete" actually deletes the property contents instead of just removing it from the object
delete profiles[key]; //remove the property from the object
break; //"break" because this is a loop
}
Je devrais avoir mentionné ci-dessus, que, contrairement à un vrai "pop", je n'ai pas besoin des objets dans un ordre particulier. J'ai juste besoin de sortir et de le retirer de son objet parent.
source d'informationauteur Chris Dutrow
Vous devez vous connecter pour publier un commentaire.
Vous devriez vraiment déclarer
key
comme unvar
.est inutile. Supprimer ne touche pas à la valeur de la propriété (ou, dans le cas d'un bien qui a un setter, mais pas de getter, même exiger qu'il ont une valeur).
Si l'objet a des propriétés énumérables sur son prototype, alors ce sera faire quelque chose de bizarre.
Envisager
Propriétés d'un objet ne sont pas stockés dans une pile de sorte que le concept de base ne fonctionne pas de manière fiable (à part les autres questions mentionnées dans les commentaires ci-dessus).
Si vous avez vraiment besoin d'une telle construire essayer quelque chose comme cela.
Démo: http://jsfiddle.net/a8Rf6/5/
Il n'y a pas de "bon" ordre dans les navigateurs en ce qu'ils donnent pour un
for in
boucle. Certains le font dans l'ordre où ils sont placés, les autres le faire numérique des indices de première. Donc, il n'y a vraiment aucun moyen de le faire sans la création de votre propre objet personnaliséVous êtes en mesure de créer la méthode pop comme ceci: .
pour une raison quelconque en utilisant seulement de l'Objet.le prototype.pop = fonction ... brise JQuery
Une meilleure approche au lieu de modifier directement le tableau d'entrée.
Par exemple.