У меня есть следующий массив, и я хочу создать из него неупорядоченный список, но у меня возникают проблемы с созданием неупорядоченного списка в правильном формате. Я искал аналогичные вопросы, но ни одно из существующих решений не работает для моей проблемы.JavaScript: Как создать неупорядоченный список из массива?
var myArray = ['Value 1', ['Inner value 1', 'Inner value 2', 'Inner value 3', 'Inner value 4'], 'Value 2', 'Value 3', 'Value 4', 'Value 5', 'Value 6'];
Вот мой код JavaScript:
function arrToUl(arr) {
var div = document.getElementById('myList');
var ul = document.createElement('ul');
for (var i = 0; i < arr.length; i++) {
if (arr[i] instanceof Array) {
var list = arrToUl(arr[i]);
} else {
var li = document.createElement('li');
li.appendChild(document.createTextNode(arr[i]));
console.log(ul.appendChild(li));
}
div.appendChild(ul);
}
}
arrToUl(myArray);
Приведенный выше код производит следующий результат:
<ul>
<li>Value 1</li>
<li>Inner Value 1</li>
<li>Inner Value 2</li>
<li>Inner Value 3</li>
<li>Inner Value 4</li>
<li>Value 2</li>
<li>Value 3</li>
<li>Value 4</li >
<li>Value 5</li >
<li>Value 6</li>
Но результат должен выглядеть следующим образом:
<ul>
<li>Value 1
<ul>
<li>Inner Value 1</li>
<li>Inner Value 2</li>
<li>Inner Value 3</li>
<li>Inner Value 4</li>
</ul>
</li>
<li>Value 2</li>
<li>Value 3</li>
<li>Value 4</li>
<li>Value 5</li>
<li>Value 6</li>
Благодарим за помощь.
Q: Что должно быть результатом, если туАггау = [ 'Значение 1', [ 'Внутреннего значение 1', 'Внутреннее значение 2', 'Внутреннее значение 3', «Внутренняя стоимость 4 '], [' Внутреннее значение 5 ',' Внутреннее значение 6 ',' Внутреннее значение 7 ',' Внутреннее значение 8 '],' Значение 2 ',' Значение 3 ',' Значение 4 ',' Значение 5 ' «Значение 6»]? –
Использование * instanceof * для обнаружения массива является ненадежным, вместо этого используйте [* Array.isArray *] (http://ecma-international.org/ecma-262/7.0/index.html#sec-array.isarray). – RobG