У меня есть массив Javascript, который содержит содержимое страницы. Чтобы рисовать все объекты в нужных местах, когда страница загружается, я петлю по массиву и вытаскиваю элементы. Это работало очень хорошо, пока я не разрешил объектам иметь детей внутри них.JS для остановки цикла после вызова функции
Существующая структура массива 0-> {elements=[] frame={I keep the frame attributes here with key value pairs}}, 1-> {elements=[] frame={}}
Тем не менее, я только начал добавлять суб-элементов в массиве элементов в каждом объекте. Итак, теперь мне нужно перебирать/рисовать каждый элемент, проверять, есть ли какие-либо дети, и если да, тогда мне тоже нужно их нарисовать.
Проблема, с которой я столкнулась, заключается в том, что после того, как я пропустил первый объект 0 и его дети, цикл for перестает работать. Это потому, что я вызываю одну и ту же функцию несколько раз? Я сделал это раньше, поэтому не думаю, что это то, что происходит.
this.run_loop = function (spawn, dom) {
console.log(spawn)
alert(spawn.length)
for (i = 0; i < spawn.length; i++) {
console.log(spawn[i])
//alert("i one")
var newdom = dom + "_" + i;
this.synthesize_elements(spawn[i], dom, newdom)
if (spawn[i].hasOwnProperty('elements')) {
//alert("FOUND")
var newarray = spawn[i]['elements'];
if (newarray.length > 0) {
this.run_loop(newarray, newdom)
}
}
}
}
Если вы открываете консоль, она показывает какие-либо ошибки во время выполнения? –
Нет. Это просто не работает. Если я прокомментирую this.run_loop (newarray, newdom), он отлично справляется с двумя верхними массивами. Только когда я зацикливаю его на дочерние массивы, у меня есть проблема – centreee
Не могли бы вы создать минимальный полный пример, демонстрирующий вашу проблему? Я не могу проверить ваш код, потому что вы ссылаетесь на функции, которые не определены в вашем примере. –