我试图使用以下代码片段遍历下面显示的JS对象,同时需要同时获取索引键和内部对象。
我该如何做到这一点,因为以下不起作用?
({ prop_1:["1", "2"],
prop_2:["3", "4"]})
$.each(myObject, function(key,valueObj){
alert(key + "/" + valueObj.toSource() );
});
prop_1 / (["1", "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]);
}
}