回答編集履歴

4

joinの中身を改行文字にすることで多少読みやすく調整(流石に字下げまでは考慮しない)

2019/01/22 06:50

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  <th></th>
82
82
 
83
- ${t.map((_, i) => `<th>${i + 1}個目</th>`).join('')}
83
+ ${t.map((_, i) => `<th>${i + 1}個目</th>`).join('\n')}
84
84
 
85
85
  </tr>
86
86
 
@@ -92,7 +92,7 @@
92
92
 
93
93
  t.map(it => `<td>${it[key]}</td>`).join('')
94
94
 
95
- }</tr>`).join('')}
95
+ }</tr>`).join('\n')}
96
96
 
97
97
  </tbody>
98
98
 
@@ -110,7 +110,11 @@
110
110
 
111
111
  // <th></th>
112
112
 
113
- // <th>1個目</th><th>2個目</th><th>3個目</th>
113
+ // <th>1個目</th>
114
+
115
+ // <th>2個目</th>
116
+
117
+ // <th>3個目</th>
114
118
 
115
119
  // </tr>
116
120
 
@@ -118,7 +122,13 @@
118
122
 
119
123
  // <tbody>
120
124
 
121
- // <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>
125
+ // <tr><td>midashi1</td><td>val11</td><td>val21</td><td>val31</td></tr>
126
+
127
+ // <tr><td>midashi2</td><td>val12</td><td>val32</td><td>val32</td></tr>
128
+
129
+ // <tr><td>midashi3</td><td>val13</td><td>val23</td><td>val33</td></tr>
130
+
131
+ // <tr><td>midashi4</td><td>val14</td><td>val24</td><td>val24</td></tr>
122
132
 
123
133
  // </tbody>
124
134
 

3

keysの使い方の注釈を追加

2019/01/22 06:50

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -5,6 +5,10 @@
5
5
 
6
6
 
7
7
  ```JavaScript
8
+
9
+ // Object.keys(t)にすると、[0, 1, 2]という誰得配列になるので、0番目の要素をサンプルとしてキー情報を抜き出す
10
+
11
+ var keys = Object.keys(t[0]);
8
12
 
9
13
  for (var i = 0; i < keys.length; i++) {
10
14
 

2

ES2015の表記を追加

2019/01/22 06:47

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -34,13 +34,21 @@
34
34
 
35
35
 
36
36
 
37
- - [テンプレート文字列](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings)
37
+ - [テンプレート文字列](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings): ※ES2015なのでIE11非対応
38
38
 
39
- - [アロー関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)
39
+ - [アロー関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions): ※ES2015なのでIE11非対応
40
40
 
41
41
  - [Array.prototype.map](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
42
42
 
43
43
  - [Array.prototype.join](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join)
44
+
45
+
46
+
47
+ ES2015という新しいバージョンの書き方はIE11には非対応ですので、
48
+
49
+ もし気になるようなら[Babel](https://babeljs.io/)のような新しいバージョンのコードをES5相当の書き方にコンパイルするツールや、そこの部分だけES5相当の書き方で代用することを検討してみてください。
50
+
51
+ 下記のコードは可読性重視でフル活用しています。
44
52
 
45
53
 
46
54
 

1

1個のテンプレート文字列に閉じ込めることで可読性アップ

2019/01/22 06:39

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -60,38 +60,56 @@
60
60
 
61
61
 
62
62
 
63
- var rs = '<table>';
63
+ var rs = `<table>
64
64
 
65
- // ヘッダー部
65
+ <thead>
66
66
 
67
- rs += '<thead><tr><th></th>';
67
+ <tr>
68
68
 
69
- rs += t.map((_, i) => `<th>${i + 1}個目</th>`).join('');
69
+ <th></th>
70
70
 
71
- rs += '</tr></thead>';
71
+ ${t.map((_, i) => `<th>${i + 1}個目</th>`).join('')}
72
72
 
73
+ </tr>
73
74
 
75
+ </thead>
74
76
 
75
- // ボディー部
77
+ <tbody>
76
78
 
77
- rs += '<tbody>';
79
+ ${keys.map(key => `<tr><td>${key}</td>${
78
80
 
79
- rs += keys.map(key => `<tr><td>${key}</td>${
81
+ t.map(it => `<td>${it[key]}</td>`).join('')
80
82
 
81
- t.map(it => `<td>${it[key]}</td>`).join('')
83
+ }</tr>`).join('')}
82
84
 
83
- }</tr>`).join('');
85
+ </tbody>
84
86
 
85
- rs += '</tbody>';
86
-
87
-
88
-
89
- rs += '</table>';
87
+ </table>`;
90
88
 
91
89
 
92
90
 
93
91
  console.log(rs);
94
92
 
95
- // "<table><thead><tr><th></th><th>1個目</th><th>2個目</th><th>3個目</th></tr></thead><tbody><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></tbody></table>"
93
+ // "<table>
94
+
95
+ // <thead>
96
+
97
+ // <tr>
98
+
99
+ // <th></th>
100
+
101
+ // <th>1個目</th><th>2個目</th><th>3個目</th>
102
+
103
+ // </tr>
104
+
105
+ // </thead>
106
+
107
+ // <tbody>
108
+
109
+ // <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>
110
+
111
+ // </tbody>
112
+
113
+ // </table>"
96
114
 
97
115
  ```