回答編集履歴
4
joinの中身を改行文字にすることで多少読みやすく調整(流石に字下げまでは考慮しない)
answer
CHANGED
@@ -39,13 +39,13 @@
|
|
39
39
|
<thead>
|
40
40
|
<tr>
|
41
41
|
<th></th>
|
42
|
-
${t.map((_, i) => `<th>${i + 1}個目</th>`).join('')}
|
42
|
+
${t.map((_, i) => `<th>${i + 1}個目</th>`).join('\n')}
|
43
43
|
</tr>
|
44
44
|
</thead>
|
45
45
|
<tbody>
|
46
46
|
${keys.map(key => `<tr><td>${key}</td>${
|
47
47
|
t.map(it => `<td>${it[key]}</td>`).join('')
|
48
|
-
}</tr>`).join('')}
|
48
|
+
}</tr>`).join('\n')}
|
49
49
|
</tbody>
|
50
50
|
</table>`;
|
51
51
|
|
@@ -54,11 +54,16 @@
|
|
54
54
|
// <thead>
|
55
55
|
// <tr>
|
56
56
|
// <th></th>
|
57
|
-
// <th>1個目</th>
|
57
|
+
// <th>1個目</th>
|
58
|
+
// <th>2個目</th>
|
59
|
+
// <th>3個目</th>
|
58
60
|
// </tr>
|
59
61
|
// </thead>
|
60
62
|
// <tbody>
|
61
|
-
// <tr><td>midashi1</td><td>val11</td><td>val21</td><td>val31</td></tr>
|
63
|
+
// <tr><td>midashi1</td><td>val11</td><td>val21</td><td>val31</td></tr>
|
64
|
+
// <tr><td>midashi2</td><td>val12</td><td>val32</td><td>val32</td></tr>
|
65
|
+
// <tr><td>midashi3</td><td>val13</td><td>val23</td><td>val33</td></tr>
|
66
|
+
// <tr><td>midashi4</td><td>val14</td><td>val24</td><td>val24</td></tr>
|
62
67
|
// </tbody>
|
63
68
|
// </table>"
|
64
69
|
```
|
3
keysの使い方の注釈を追加
answer
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
適宜`<tr>`で挟まなければならないので、もう少し複雑になりますが、この方向で考えてください。
|
3
3
|
|
4
4
|
```JavaScript
|
5
|
+
// Object.keys(t)にすると、[0, 1, 2]という誰得配列になるので、0番目の要素をサンプルとしてキー情報を抜き出す
|
6
|
+
var keys = Object.keys(t[0]);
|
5
7
|
for (var i = 0; i < keys.length; i++) {
|
6
8
|
var key = keys[i];
|
7
9
|
for (var j = 0; j < t.length; j++) {
|
2
ES2015の表記を追加
answer
CHANGED
@@ -16,11 +16,15 @@
|
|
16
16
|
ただまぁ、下記のような機能を覚えればスマートに書けるので余裕が出てきたら
|
17
17
|
配列を操作するメソッドの扱いも勉強してみてください。
|
18
18
|
|
19
|
-
- [テンプレート文字列](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings)
|
19
|
+
- [テンプレート文字列](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings): ※ES2015なのでIE11非対応
|
20
|
-
- [アロー関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)
|
20
|
+
- [アロー関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions): ※ES2015なのでIE11非対応
|
21
21
|
- [Array.prototype.map](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
|
22
22
|
- [Array.prototype.join](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join)
|
23
23
|
|
24
|
+
ES2015という新しいバージョンの書き方はIE11には非対応ですので、
|
25
|
+
もし気になるようなら[Babel](https://babeljs.io/)のような新しいバージョンのコードをES5相当の書き方にコンパイルするツールや、そこの部分だけES5相当の書き方で代用することを検討してみてください。
|
26
|
+
下記のコードは可読性重視でフル活用しています。
|
27
|
+
|
24
28
|
```JavaScript
|
25
29
|
var t = [
|
26
30
|
{"midashi1":"val11","midashi2":"val12","midashi3":"val13","midashi4":"val14"},
|
1
1個のテンプレート文字列に閉じ込めることで可読性アップ
answer
CHANGED
@@ -29,21 +29,30 @@
|
|
29
29
|
];
|
30
30
|
var keys = Object.keys(t[0]);
|
31
31
|
|
32
|
-
var rs =
|
32
|
+
var rs = `<table>
|
33
|
+
<thead>
|
34
|
+
<tr>
|
33
|
-
/
|
35
|
+
<th></th>
|
34
|
-
rs += '<thead><tr><th></th>';
|
35
|
-
|
36
|
+
${t.map((_, i) => `<th>${i + 1}個目</th>`).join('')}
|
37
|
+
</tr>
|
38
|
+
</thead>
|
39
|
+
<tbody>
|
36
|
-
|
40
|
+
${keys.map(key => `<tr><td>${key}</td>${
|
41
|
+
t.map(it => `<td>${it[key]}</td>`).join('')
|
42
|
+
}</tr>`).join('')}
|
43
|
+
</tbody>
|
44
|
+
</table>`;
|
37
45
|
|
38
|
-
// ボディー部
|
39
|
-
rs += '<tbody>';
|
40
|
-
rs += keys.map(key => `<tr><td>${key}</td>${
|
41
|
-
t.map(it => `<td>${it[key]}</td>`).join('')
|
42
|
-
}</tr>`).join('');
|
43
|
-
rs += '</tbody>';
|
44
|
-
|
45
|
-
rs += '</table>';
|
46
|
-
|
47
46
|
console.log(rs);
|
48
|
-
// "<table>
|
47
|
+
// "<table>
|
48
|
+
// <thead>
|
49
|
+
// <tr>
|
50
|
+
// <th></th>
|
51
|
+
// <th>1個目</th><th>2個目</th><th>3個目</th>
|
52
|
+
// </tr>
|
53
|
+
// </thead>
|
54
|
+
// <tbody>
|
55
|
+
// <tr><td>midashi1</td><td>val11</td><td>val21</td><td>val31</td></tr><tr><td>midashi2</td><td>val12</td><td>val32</td><td>val32</td></tr><tr><td>midashi3</td><td>val13</td><td>val23</td><td>val33</td></tr><tr><td>midashi4</td><td>val14</td><td>val24</td><td>val24</td></tr>
|
56
|
+
// </tbody>
|
57
|
+
// </table>"
|
49
58
|
```
|