回答編集履歴

3

テキスト修正

2018/01/13 15:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  return(html + div);
92
92
 
93
- }, '');
93
+ });
94
94
 
95
95
  ```
96
96
 
@@ -100,7 +100,7 @@
100
100
 
101
101
  ```javascript
102
102
 
103
- const concat = a.reduce((html, div) => html + div, '');
103
+ const concat = a.reduce((html, div) => html + div);
104
104
 
105
105
  ```
106
106
 

2

テキスト修正

2018/01/13 15:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
File without changes

1

テキスト修正

2018/01/13 14:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -39,3 +39,69 @@
39
39
  console.log(concat); // => <div>あ</div><div>い</div>
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ ---
46
+
47
+ 追記
48
+
49
+
50
+
51
+ **eval** は強力な関数ですが、濫用するとプログラムが読みにくくなります。
52
+
53
+ 後で結合することが分かっているなら、配列に入れたほうがよいでしょう。
54
+
55
+ つまり、
56
+
57
+ ```javascript
58
+
59
+ var a = [];
60
+
61
+
62
+
63
+ a[0] = '<div>あ</div>';
64
+
65
+ a[1] = '<div>い</div>';
66
+
67
+ a[2] = '<div>う</div>';
68
+
69
+ ```
70
+
71
+ こうしておいて、普通に
72
+
73
+ ```javascript
74
+
75
+ var concat = '';
76
+
77
+ for ( var i=0; i < a.length; i ++ )
78
+
79
+ concat += a[i];
80
+
81
+ ```
82
+
83
+ とするか、あるいは、[reduce](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) を使って
84
+
85
+ ```javascript
86
+
87
+ var concat = a.reduce(
88
+
89
+ function(html, div) {
90
+
91
+ return(html + div);
92
+
93
+ }, '');
94
+
95
+ ```
96
+
97
+ という書き方もできます。`reduce` は慣れるといろいろ便利です。
98
+
99
+ ちなみに上記のコードは、ES6 だと、
100
+
101
+ ```javascript
102
+
103
+ const concat = a.reduce((html, div) => html + div, '');
104
+
105
+ ```
106
+
107
+ とシンプルに書けます。