はじめまして。今JavaScriptを勉強しているものです。
はじめて、teratailを使わさせて頂きました。
下記の様な配列オブジェクトがあります。
javascript
1const array = [ 2 { 3 key: "A", 4 value: ['<div><span>a</span></div>', '<div><span>a</span></div>'] 5 }, 6 { 7 key: "B", 8 value: ['<div><span>a</span></div>', '<div><span>a</span></div>', '<div><span>a</span></div>'] 9 }, 10 { 11 key: "C", 12 value: ['<div><span>a</span></div>', '<div><span>a</span></div>', '<div><span>a</span></div>', '<div><span>a</span></div>'] 13 }, 14 { 15 key: "D", 16 value: ['<div><span>a</span></div>', '<div><span>a</span></div>'] 17 } 18 ];
この配列オブジェクトを使ってHTMLでリスト表示させたいのですが、どの様にループ処理させれば良いのかがわからない状態で悩んでおります。
keyの部分は、リストのタイトル<h2>にしたく、valueの部分は、<li>で作りたいです。表示したい順序も配列のそのままで表示したくご教示頂けませんでしょうか。
下記の様にmapで出来るのかと考えてみたのですがわからない状態です。
javascript
1const html = array.map(([k, l]) => ` 2 <ul> 3 <li class="list">${k}<li> 4 ${l.map(n => `<ul><li class="listend">${n}</li></ul>`).join('')} 5</ul>`);
出力したいHTMLですが、
html
1<div id="sub"><--!ここにJSからのhtmlを入れたいです--></div>
ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
liにdivを流し込むんですか?
親はulですか?
只今、試してみたコードを追加いたしました。
回答はしましたが、最終形がみえません
出力したいHTMLのサンプルをつけてください
htmlも追加してみました。
yambejpさんのコメントをよく見てください。
> 最終形がみえません
ということは、中身を入れたいHTMLを提示するのではなく、
最終的にどういう構造のHTMLにしたいか、の最終の形式を提示をして下さい、っていうことです。
つまり、現状ではなく、理想とするHTMLの出力結果を提示して下さい、ってことです。