У меня есть массив объектов, которые будут основой для определенного меню на моем сайте.Он будет построен с использованием 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, чтобы мне не приходилось иметь дело с индексами и длинами.Я ожидаю, что семь пунктов появятся в меню, когда оно будет построено (я буду использовать <ul>
и <li>
).
Когда я отлаживал и случайно добавил цвет фона к <li>
,это когда весь ад вырвался на свободу.Я нашел по крайней мере 30 пустых <li>
после видимого 7-го меню <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);
}
}