JQuery迭代字典数组

时间:2014-11-18 15:19:35

标签: javascript jquery

我在ajax请求中返回服务器返回的dicts数组:

var obj =  [{'id': '111', 'name': 'test1'}, {'id': '1975', 'name': 'test2'}]

当我尝试访问每个字典时:

$.each(obj,function(index,value){ 
    alert(index + " : " + value);
});

我收到错误:

  

未捕获的TypeError:无法在'中使用'运营商搜索' 193'在[{' id':' 111',' name':' test1'},{' id': ' 1975',' name':' test2'}]

如何访问阵列中的每个字典?

4 个答案:

答案 0 :(得分:1)

我认为您编写的代码没有任何错误,完全正确。

http://jsfiddle.net/neilmalgaonkar/3y79vr4s/

var obj=  [{'id': '111', 'name': 'test1'}, {'id': '1975', 'name': 'test2'}];

$.each(obj,function(index,value){ 
   console.log(index,  value);
});

从数组中移除 u

答案 1 :(得分:1)

你需要一个$ .each()用于数组,另一个用于处理字典的元素(BTW,大多数JS程序员称之为“对象”)

$.each(obj,function(index,value){ 
    $.each(value, function(index2, value2) {

                alert(index2 + " : " + value2);
    }); 

});

答案 2 :(得分:0)

jQuery $.each函数只是javascripts for-in循环的包装器。您尝试迭代的对象无效。

循环正在根据该密钥查找keyvalue。但值u'111'是无效的js对象表示法。

编辑:您说您删除了'u',但错误消息仍然表示您拥有它...

答案 3 :(得分:0)

var obj=  [{'id': '111', 'name': 'test1'}, {'id': '1975', 'name': 'test2'}]

$(obj).each(function(index,value){ 

    alert("index: " + index + ",  id: " + value.id + ",  name: " + value.name);

});

工作:http://jsfiddle.net/wvqkfb1f/