jQuery itérer sur l'objet avec .each de $
Question
J'ai un options
objet: options = {title : 'title1', name : 'name1', url : 'url1', etc.}
qui est passé en tant que paramètre à une fonction. Je suis en train de itérer sur cet objet, passer par une autre fonction evaluate
, et stocker le résultat dans un autre opts
objet, comme suit:
var opts = new Object();
$.each(options, function(key,value){
opts.key = evaluate(element, value);
});
Le evaluate(element,value)
fonctionne très bien, mais le problème est que opts
finit par ressembler à:
{key : eval(element,url1)}
au lieu de
{title : eval(element,title1), name : eval(element,name1), etc.}
C'est, key
est transmis littéralement au lieu d'être évalué, et est écrasé à chaque itération avec la dernière propriété options
.
Dois-je la bonne syntaxe dans ma ligne d'affectation? J'ai essayé aussi:
opts = {key : eval(element,val)}
qui a donné le même résultat que ci-dessus. Je peux aussi convertir l'objet d'un tableau dans l'itération de $.each
. J'ai essayé plusieurs façons de le faire, aussi sans succès. Si quelqu'un peut me montrer cette voie, ce serait génial aussi.
(Ceci est un plugin jQuery, et je teste en utilisant Firebug dans Firefox).
Merci d'avance pour votre aide.
La solution
Comme vous l'avez découvert c'est la clé littérale « clé »:
opts.key = evaluate(element, value);
Pour utiliser une utilisation dynamique des clés []
:
opts[key] = evaluate(element, value);
Exemple spécifique:
var o = {};
o["test"] = "foo";
alert(o.test);