Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не могу понять (https://javascript.ru/forum/events/29133-ne-mogu-ponyat.html)

cyber 16.06.2012 17:33

все дошло!!! вот я туплю=) при рекурсии меняется значение key

cyber 16.06.2012 17:34

Amphiluke,
:thanks:

Deff 16.06.2012 17:43

http://cs10349.userapi.com/u11538055/-7/x_5d2305be.jpg

var J=-1; //(Номер вложенности)
function createTreeText(obj) { // отдельная рекурсивная функция
J++;
    var li = '';
    for (var key in obj) {
alert(J+" (Номер вложенности)")
alert(createTreeText(obj))
      li += '<li>' + key + createTreeText(obj[key]) + '</li>';
// функции каждый раз себя вызывает

alert(li)
    }
    if (li) {
      var ul = '<ul>' + li + '</ul>'
    }
    return ul || '';
  } a=[1,2,3];createTreeText(a)


Воть так достигается => error: Maximum recursion depth exceeded

cyber 16.06.2012 17:46

Цитата:

Сообщение от Deff (Сообщение 181871)
http://cs10349.userapi.com/u11538055/-7/x_5d2305be.jpg

var J=-1; //(Номер вложенности)
function createTreeText(obj) { // отдельная рекурсивная функция
J++;
    var li = '';
    for (var key in obj) {
alert(J+" (Номер вложенности)")
alert(createTreeText(obj))
      li += '<li>' + key + createTreeText(obj[key]) + '</li>';
// функции каждый раз себя вызывает

alert(li)
    }
    if (li) {
      var ul = '<ul>' + li + '</ul>'
    }
    return ul || '';
  } a=[1,2,3];createTreeText(a)


Воть так достигается => error: Maximum recursion depth exceeded

тупонул немного =)
не подумал что in перебирает пока есть что перебирать


Часовой пояс GMT +3, время: 06:58.