2

我有一个对象optionsoptions = {title : 'title1', name : 'name1', url : 'url1', etc.}

它作为参数传递给函数。我正在尝试遍历该对象,将其传递给另一个函数evaluate,并将结果存储在另一个对象opts中,如下所示:

var opts = new Object();

$.each(options, function(key,value){
opts.key = evaluate(element, value);
});

工作正常,evaluate(element,value)但问题是opts最终看起来像:

{key : eval(element,url1)}

代替

{title : eval(element,title1), name : eval(element,name1), etc.}

也就是说,key按字面意思传递而不是被评估,并在每次迭代中使用options.

我的作业行中有正确的语法吗?我也试过:

opts = {key : eval(element,val)}

这给出了与上面相同的结果。$.each我还可以在迭代中将对象转换为数组。我已经尝试了几种方法来做到这一点,也没有成功。如果有人可以告诉我那条路线,那也很棒。

(这是一个 jQuery 插件,我正在 Firefox 中使用 Firebug 进行测试)。

在此先感谢您的帮助。

4

1 回答 1

8

正如您所发现的,这是文字键“键”:

opts.key = evaluate(element, value);

要使用动态密钥,请使用[]

opts[key] = evaluate(element, value);

具体例子:

var o = {};
o["test"] = "foo";
alert(o.test);
于 2009-12-13T20:02:36.990 回答