我有這個變數值
["test", { testone: "check", filter: [{ testtwo: "ignore", cancel: ["3.2"]}]}, "testthree"].
我想要做的是在下面的無序串列中顯示它。
. test
. check
. ignore
. 3.2
. testthree
如果它在陣列或陣列物件中,我可以將它轉換為串列,嵌套讓我感到困惑。我在想可以在這里使用遞回函式(如果我錯了,請糾正我),這是我第一次用 javascript 解決復雜問題,請分享一些示例如何解決這個問題?謝謝
uj5u.com熱心網友回復:
這是一個生成嵌套ul元素的遞回函式。對于示例資料,將有一個子串列,其唯一的專案是更深的串列,因此您會看到兩個彼此相鄰的串列專案符號。這是樣本資料有一個包含一個物件元素的陣列的地方——沒有任何“標簽”。
function toUnorderedList(arr) {
const ul = document.createElement("ul");
let li = document.createElement("li");
for (const value of Object.values(arr)) {
if (Object(value) !== value) { // Primitive value
li = document.createElement("li");
li.textContent = value;
} else { // Object (maybe Array)
li.append(toUnorderedList(value));
}
ul.append(li);
}
return ul;
}
const data = [
"test",
{
testone: "check",
filter: [
{ testtwo: "ignore", cancel: ["3.2"] }
],
},
"testthree"
];
document.body.append(toUnorderedList(data));
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494253.html
標籤:javascript html
