gpt4 book ai didi

JavaScript:如何从数组创建无序列表?

转载 作者:太空狗 更新时间:2023-10-29 15:48:25 26 4
gpt4 key购买 nike

我有以下数组,我想从中创建一个无序列表,但我无法以正确的格式生成无序列表。我搜索过类似的问题,但现有的解决方案均无法解决我的问题。

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>

感谢您的帮助。

最佳答案

您已附加所有 <ul> myList 的元素 <div> .为了改变它,我在 arrToUl(root, arr) 中添加了一个新参数功能。

新参数,root , 确定谁创建了 <ul>应该追加到,因此如果函数遇到子数组,它会使用前一个列表项作为创建子列表的根。

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'];

function arrToUl(root, arr) {
var ul = document.createElement('ul');
var li;

root.appendChild(ul); // append the created ul to the root

arr.forEach(function(item) {
if (Array.isArray(item)) { // if it's an array
arrToUl(li, item); // call arrToUl with the li as the root
return;
}

li = document.createElement('li'); // create a new list item
li.appendChild(document.createTextNode(item)); // append the text to the li
ul.appendChild(li); // append the list item to the ul
});
}

var div = document.getElementById('myList');

arrToUl(div, myArray);
<div id="myList"></div>

关于JavaScript:如何从数组创建无序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41352837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com