我有一组对象,它们将成为我网站中某个菜单的基础。它将使用 JavaScript 构建:
[
{"menuName":"Contact Info","sectionName":"contacts"},
{"menuName":"Facilities","sectionName":"facilities"},
{"menuName":"Locations","sectionName":"locations"},
{"menuName":"Packages","sectionName":"packages"},
{"menuName":"Policies","sectionName":"policies"},
{"menuName":"Reviews","sectionName":"reviews"},
{"menuName":"Rooms","sectionName":"rooms"}
]
所以我决定使用“for in 循环”,这样我就不必处理索引和长度了。我希望在构建时菜单中会出现七个项目(我将使用<ul>
and <li>
)。
当我在调试时不小心为<li>
. <li>
在可见的第 7 个菜单之后,我发现至少有 30 个是空的<li>
。
为什么会这样?
编辑:
这是循环。该循环为稍后解析的另一个函数创建另一个对象。(它创建了一个<li>
带有<a>
前一个数组提供的属性的内部。)我知道另一个函数可以正常工作,因为当我将此“for-in”循环更改为普通的 for 循环或 while 循环时,它可以正常工作。
this.sectionList = function(menu, id) {
var list = new Array();
for(var i in menu) {
var listItem = {
"element" : "li",
"contains" : [{
"element" : "a",
"attr" : {
"href" : menu[i].sectionName + ':' + id
},
"contains" : menu[i].menuName
}]
}
list.push(listItem);
}
}