假设我有这样的设置:
var whatever = new Array();
whatever["a"] = new Array();
whatever["a"]["a"] = "test1";
whatever["a"]["b"] = "test2";
whatever["b"] = new Array();
whatever["b"]["a"] = "test3";
whatever["b"]["b"] = "test4";
我尝试迭代它:
$.each(whatever, function(key, value) {
$.each(value, function(subkey, subvalue) {
//stuff with key, subkey, and subvalue here
});
});
然而迭代失败了,注释掉嵌套的 foreach 循环将允许页面加载,因此这似乎就是问题所在。
在第一个循环中,我可以执行以下操作:
alert(value["a"]);
并收到正确的值,因此它似乎是一个“有效”数组。既然嵌套循环与外部循环基本相同,我哪里出错了?
使用对象而不是数组。
var whatever = {};
whatever["a"] = {};
whatever["a"]["a"] = "test1";
whatever["a"]["b"] = "test2";
whatever["b"] = {};
whatever["b"]["a"] = "test3";
whatever["b"]["b"] = "test4";
http://jsfiddle.net/QwT8W/ http://jsfiddle.net/QwT8W/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)