jQuery iterar sobre objeto con $ .Cada
Pregunta
Tengo una options
objeto: options = {title : 'title1', name : 'name1', url : 'url1', etc.}
que se pasa como un parámetro para una función. Estoy tratando de pasar sobre ese objeto, pasarla a través de otra función evaluate
, y almacenar el resultado en otra opts
objeto, así:
var opts = new Object();
$.each(options, function(key,value){
opts.key = evaluate(element, value);
});
El evaluate(element,value)
funciona bien, pero el problema es que opts
termina pareciéndose a:
{key : eval(element,url1)}
en lugar de
{title : eval(element,title1), name : eval(element,name1), etc.}
Es decir, key
se pasa literalmente, en lugar de ser evaluado, y se sobreescribe con cada iteración con la última propiedad en options
.
¿Tengo la sintaxis correcta en mi línea de asignación? También probé:
opts = {key : eval(element,val)}
que dio el mismo resultado que anteriormente. I también puede convertir el objeto a una matriz dentro de la iteración $.each
. He intentado varias maneras de hacerlo, también sin éxito. Si alguien me puede mostrar esa ruta, que sería grande también.
(Esto es para un plugin de jQuery, y yo estoy probando el uso de Firebug en Firefox).
Gracias de antemano por su ayuda.
Solución
Como usted ha descubierto esta es la 'clave' clave literal:
opts.key = evaluate(element, value);
Para utilizar un uso []
dinámica de claves:
opts[key] = evaluate(element, value);
ejemplo específico:
var o = {};
o["test"] = "foo";
alert(o.test);