jQuery 使用 $.each 迭代对象

标签 jquery arrays object iteration each

我有一个对象options:options = {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 进行测试)。

预先感谢您的帮助。

最佳答案

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

opts.key = evaluate(element, value);

要使用动态 key ,请使用[]:

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

具体示例:

var o = {};
o["test"] = "foo";
alert(o.test);

关于jQuery 使用 $.each 迭代对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1897553/

相关文章:

javascript - 从 JSON 对象 KEYS 创建字符串 - Vanilla JavaScript 或 lodash

arrays - 从数组中删除条目

java - 查询对象的数组列表

jquery - 如何使用自定义 div 元素在 Jquery 中显示工具提示

Javascript 图像在 IE 中的行为不同

Javascript 变量显示未定义

javascript - 将新键添加到数组对象javascript

javascript - 在ajax响应中执行javascript

javascript - jQuery:斑马条纹表

java - 调用函数时数组为空(java)