回答編集履歴

1

必須メソッドを忘れてた

2018/03/24 14:04

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -120,6 +120,78 @@
120
120
 
121
121
 
122
122
 
123
+ chainも凄まじいですが、
124
+
125
+ それとシナジーが効く筆頭としてtoPairsとfromPairsは欠かせないですね。
126
+
127
+ 素のJSはArray→Arrayはそこそこ強くなりましたが、ObjectとArrayの相互変換が弱いのでLodashを始めとした関数型プログラミングライブラリの独壇場だと思います。
128
+
129
+
130
+
131
+ JSでも`Object.entries(obj).map(fn1).reduce(fn2, {})`というルートで可能ですが、
132
+
133
+ Lodashの`_(obj).toPairs().map(fn).fromPairs()`のコンボで整形する方がラムダ1個で済みますし何やってるかも簡潔に済むと思います。
134
+
135
+
136
+
137
+ ```JavaScript
138
+
139
+ var users = [
140
+
141
+ {name: "taro", score: 100},
142
+
143
+ {name: "jiro", score: 80},
144
+
145
+ {name: "saburo", score: 90}
146
+
147
+ ];
148
+
149
+ result = users
150
+
151
+ .map(it => [it.name, it])
152
+
153
+ .fromPairs()
154
+
155
+ .value();
156
+
157
+ ```
158
+
159
+
160
+
161
+ ```JSON
162
+
163
+ {
164
+
165
+ "taro": {
166
+
167
+ "name": "taro",
168
+
169
+ "score": 100
170
+
171
+ },
172
+
173
+ "jiro": {
174
+
175
+ "name": "jiro",
176
+
177
+ "score": 80
178
+
179
+ },
180
+
181
+ "saburo": {
182
+
183
+ "name": "saburo",
184
+
185
+ "score": 90
186
+
187
+ }
188
+
189
+ }
190
+
191
+ ```
192
+
193
+
194
+
123
195
  後はcurryですね。
124
196
 
125
197
  JavaScriptはES2015でクラスが使えるようになってDIが楽になったとはいえ、