質問編集履歴

7

hensyu

2021/08/20 10:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- originalObj = Object.assgin(originalObj, mergeObj}
39
+ originalObj = R.mergeDeepRight(originalObj, mergeObj}
40
40
 
41
41
  }
42
42
 
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- このようなコードの`map`から`assgin`までの所を、[Ramda](https://ramdajs.com/)で短く・なるべく分かりやすくまとめたいです
47
+ このようなコードの`map`から`assgin`までの所を、[Ramda](https://ramdajs.com/)かLodashで短く・なるべく分かりやすくまとめたいです
48
48
 
49
49
  ramdaを使うのは初めてで、何が何だか全然分からない状態でマジで調べようもないです
50
50
 

6

編集

2021/08/20 10:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,14 @@
1
1
  やりたいことはオブジェクトのマージです。
2
2
 
3
- 元々は`{name: string, hoge: string, fuga: string}`のオブジェクトの集合があります。
3
+ 元々は`{name: string, hoge: string, fuga: string, piyo: string}`のオブジェクトの集合があります。
4
4
 
5
5
  この集合を、元の集合の要素を上書きする要素は`{hoge: string}`、追加する要素は`{name: string, hoge: string}`という一部のプロパディを持ったオブジェクトの集合で上書きします
6
6
 
7
7
 
8
8
 
9
- これをそのまま上書きすると、追加された要素は`fuga`プロパティを持たないことになります。
9
+ これをそのまま上書きすると、追加された要素は`fuga`・`piyo`プロパティを持たないことになります。
10
10
 
11
- ですので、上書きする前に集合から追加する要素を判定して、`fuga`を追加します
11
+ ですので、上書きする前に集合から追加する要素を判定して、`fuga`・`piyo`を追加します
12
12
 
13
13
  `fuga`は`hoge`を引数に取るasync関数によって求められます
14
14
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  async main = () => {
18
18
 
19
- let originalObj = {a: {name: 'a', hoge: 'hoge', fuga: 'fuga'}}
19
+ let originalObj = {a: {name: 'a', hoge: 'hoge', fuga: 'fuga', piyo: 'piyo}}
20
20
 
21
21
 
22
22
 
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- return {fuga: method(obj.hoge), ...obj} //methodはasync関数
33
+ return {fuga: method(obj.hoge), piyo: 'piyo' ...obj} //methodはasync関数
34
34
 
35
35
  }, mergeObj)
36
36
 

5

説明の追加

2021/08/20 02:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,26 +1,44 @@
1
- ```JS
1
+ やりたいことはオブジェクトのマージです。
2
2
 
3
- let originalObj = {a: {name: a, hoge: hoge, fuga: fuga}}
3
+ 元々は`{name: string, hoge: string, fuga: string}`のオブジェクトの集合があります。
4
+
5
+ この集合を、元の集合の要素を上書きする要素は`{hoge: string}`、追加する要素は`{name: string, hoge: string}`という一部のプロパディを持ったオブジェクトの集合で上書きします
4
6
 
5
7
 
6
8
 
9
+ これをそのまま上書きすると、追加された要素は`fuga`プロパティを持たないことになります。
10
+
11
+ ですので、上書きする前に集合から追加する要素を判定して、`fuga`を追加します
12
+
13
+ `fuga`は`hoge`を引数に取るasync関数によって求められます
14
+
15
+ ```JS
16
+
17
+ async main = () => {
18
+
7
- let mergeObj = {a: {hoge: hogehoge}, b: {name: b, hoge: hogehoge}}
19
+ let originalObj = {a: {name: 'a', hoge: 'hoge', fuga: 'fuga'}}
8
20
 
9
21
 
10
22
 
11
- mergeObj = R.map(obj => {
23
+ let mergeObj = {a: {hoge: 'hogehoge'}, b: {name: 'b', hoge: 'hogehoge'}}
12
24
 
25
+
26
+
27
+ mergeObj = R.map(obj => {
28
+
13
- if ('fuga' in obj) return obj
29
+ if (!('name' in obj)) return obj
14
30
 
15
31
 
16
32
 
17
- return {fuga: fuga, ...obj}
33
+ return {fuga: method(obj.hoge), ...obj} //methodはasync関数
18
34
 
19
- }, mergeObj)
35
+ }, mergeObj)
20
36
 
21
37
 
22
38
 
23
- originalObj = Object.assgin(originalObj, mergeObj}
39
+ originalObj = Object.assgin(originalObj, mergeObj}
40
+
41
+ }
24
42
 
25
43
  ```
26
44
 

4

2021/08/20 00:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- このようなコードの`map`から`assgin`までの所を、Ramdaで短く・なるべく分かりやすくまとめたいです
29
+ このようなコードの`map`から`assgin`までの所を、[Ramda](https://ramdajs.com/)で短く・なるべく分かりやすくまとめたいです
30
30
 
31
31
  ramdaを使うのは初めてで、何が何だか全然分からない状態でマジで調べようもないです
32
32
 

3

2021/08/19 15:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,8 @@
26
26
 
27
27
 
28
28
 
29
- このようなコードの`map`から`assgin`までの所を、Ramdaで短く・なるべく分かりやすくまとめて頂きたいです
29
+ このようなコードの`map`から`assgin`までの所を、Ramdaで短く・なるべく分かりやすくまとめたいです
30
30
 
31
+ ramdaを使うのは初めてで、何が何だか全然分からない状態でマジで調べようもないです
32
+
31
- よろしくお願いします
33
+ 助けてださいお願いします

2

syusei

2021/08/19 13:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- obj.fuga = fuga
17
+ return {fuga: fuga, ...obj}
18
18
 
19
19
  }, mergeObj)
20
20
 

1

修正

2021/08/19 12:44

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- let mergeObj.map(obj => {
11
+ mergeObj = R.map(obj => {
12
12
 
13
13
  if ('fuga' in obj) return obj
14
14
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  obj.fuga = fuga
18
18
 
19
- }
19
+ }, mergeObj)
20
20
 
21
21
 
22
22
 
@@ -26,6 +26,6 @@
26
26
 
27
27
 
28
28
 
29
- このようなコードの`map`から`assgin`までの所を、Ramdaで短く・なるべく分かりやすくまとめたいです
29
+ このようなコードの`map`から`assgin`までの所を、Ramdaで短く・なるべく分かりやすくまとめて頂きたいです
30
30
 
31
31
  よろしくお願いします