回答編集履歴

2

サンプルコードの改善

2018/01/30 09:22

投稿

so87
so87

スコア789

answer CHANGED
@@ -1,5 +1,5 @@
1
- lodashのメリットはchainでつなげての遅延評価(v3以降)だと思います。
1
+ lodashのメリットはchainでつなげての遅延評価(v3以降)による最適化処理だと思います。
2
- 今回はfindで絞っているし、sortは特性上streamが切られるので遅延評価の対象とならないですが^^
2
+ 今回はfindで絞っているし、sortはその特性上、流れが切られるので最適化の対象とならないですが^^
3
3
  lodashを使うなら、chain(遅延評価)を使うことをお勧めします。
4
4
 
5
5
  ```js
@@ -27,4 +27,19 @@
27
27
  return _.sortBy( users, 'name' );
28
28
  }
29
29
 
30
+ ```
31
+
32
+ 追記です。
33
+ 「非破壊的な方法で変更したい」というのを見逃していたので修正版も。
34
+ ```js
35
+ const userChange = (id, point, profile)=> {
36
+ return _.chain( users )
37
+ .cloneDeep() //複製
38
+ .tap( users => {
39
+ //強引に中間操作・・・
40
+ _.chain(users).find( {id:id} ).assign( { point: point, profile: profile } ).commit();
41
+ })
42
+ .sortBy('name')
43
+ .value();
44
+ }
30
45
  ```

1

誤字修正

2018/01/30 09:22

投稿

so87
so87

スコア789

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  lodashのメリットはchainでつなげての遅延評価(v3以降)だと思います。
2
- 今回はfindで絞っているし、sortは特性上streamが切られるので遅延評価の対象とならないですが^^
2
+ 今回はfindで絞っているし、sortは特性上streamが切られるので遅延評価の対象とならないですが^^
3
- lodashを使うなら、chainを使うことをお勧めします。
3
+ lodashを使うなら、chain(遅延評価)を使うことをお勧めします。
4
4
 
5
5
  ```js
6
6
  var userChange = (id, point, profile)=> {