Код для возврата древовидной структуры в console.log с помощью рекурсивной функции, как показано ниже. Я добавил setTimeout, потому что мне нужны некоторые задержки во время обработки кода, но когда я его добавляю, порядок обработки выводится в совершенно другом формате. Кроме того, время задержки не кажется постоянным.
Предполагаемое значение
Если в узле после поиска заголовка первой категории есть дочерний элемент, поиск по заголовку второй категории выполняется по рекурсиву, и снова запрашивается значение потомков, а затем третье .. .. Если добавлен setTimeout, то сначала будет высеяно целое, затем второе целое, затем третье целое и т. д.
Почему это происходит?
var time = 0;
function searchTree(v, t){
$(v).each(function(i,k){
setTimeout(function(){
if (t == 'clone'){
console.log(k.sCategoryTitle);
if (k.children){
searchTree(k.children,'clone');
}
}
}, time = time + 100);
});
}
пример кода: http://jsfiddle.net/uahg5qd9/3/