Добрый день!
В javascript пока в процессе знакомства, и возникла такая задачка в процессе обучения, которая затормозила...
Есть матрица [1,2,[3,4,[5,6,7],8],9,10].
С помощью функции (желательно, рекурсивной), нужно её превратить в меню вида:
<ul>
<li>1</li>
<li>2</li>
<ul>
<li>3</li>
<li>4</li>
<ul>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
<li>8</li>
</ul>
<li>9</li>
<li>10</li>
</ul>
Написала такой код:
function recursiveList (data) {
var arr = data;
var list = document.getElementById('list');
var newlist = document.createElement('ul');
for (var i = 0; i < arr.length; i++) {
var item = document.createElement("li");
item.appendChild(document.createTextNode(arr[i]));
newlist.appendChild(item);
};
list.appendChild(newlist);
for (var i = 0; i < arr.length; i++) {
if (typeof(arr[i]) == 'object') {
return recursiveList(arr[i]);
}
};
return list;
}
Но пока что получаю значения в виде:
<ul>
<li>1</li>
<li>2</li>
<li>3 4 5 6 7 8</li>
<li>9</li>
<li>10</li>
</ul>
<ul>
<li>3</li>
<li>4</li>
<li>5 6 7</li>
<li>8</li>
</ul>
<ul>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
Что нужно сделать, чтоб привести её в нужный вид? Буду очень благодарна помощи!