jQuery:正确地循环对象?

时间:2011-01-05 11:31:47

标签: javascript jquery loops object each

我试图使用以下代码片段遍历下面显示的JS对象,同时需要同时获取索引键和内部对象。

我该如何做到这一点,因为以下不起作用?

对象:

({ prop_1:["1", "2"],
 prop_2:["3", "4"]})

我的代码:

$.each(myObject, function(key,valueObj){
    alert(key + "/" + valueObj.toSource() );
});

预期输出:

prop_1 / (["1", "2"])

2 个答案:

答案 0 :(得分:29)

你正在取得好的内部对象,valueObj 数组,它只是没有方法.toSource()(至少不是跨浏览器),如果你删除你会收到提醒:

$.each(myObject, function(key,valueObj){
    alert(key + "/" + valueObj );
});

You can test it out here,不要抛出输出只是:

prop_1/1,2
prop_2/3,4

...数组上的默认.toString()是逗号分隔列表,这就是您使用alert()看到的内容。例如,如果您改为alert(key + "/" + valueObj[0] );,则会看到:

prop_1/1
prop_2/3

...所以你可以看到你有你想要的数组,you can test that here

答案 1 :(得分:4)

您可以使用for in循环:

    var myObject = ({ prop_1:["1", "2"], prop_2:["3", "4"]})
    for (var key in myObject) {
       if (myObject.hasOwnProperty(key)) {
           alert(key + "/" + myObject[key]);
        }
     }