teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

説明が解りづらかったため修正。

2020/02/08 04:19

投稿

HARIBOYA
HARIBOYA

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  オブジェクトのマージを多次元で対応したいです。
2
2
 
3
+ 下記は変数a,bをマージするサンプルです。
3
- 下記ような結果を返す「merge」関数を作成したいのですがどの様にすればいいでしょうか?
4
+ サンプルの「merge」関数部分をどの様に作成すればのか解らな状態す。
4
5
 
5
6
  ```js
6
7
 
@@ -8,10 +9,17 @@
8
9
 
9
10
  var b = {"H1":{"H3":{"h5":"VALUE5"}}};
10
11
 
12
+ //Object.assignだとH1キーで上書きされてしまいます。
13
+ Object.assign(a,b); // {"H1":{"H3":{"h5":"VALUE5"}}};
14
+
15
+ //始めのキーで上書きされるのではなく1つ以上の配列を再帰的にマージしたいです。
16
+ //phpの関数で言うとarray_merge_recursive
17
+ //https://www.php.net/manual/ja/function.array-merge-recursive.php
18
+ //になります。
11
- var res = merge(a,b); //{"H1":{"H2":10, "H3":{"H4":"VALUE4","h5":"VALUE5"}}};
19
+ merge(a, b); //{"H1":{"H2":10, "H3":{"H4":"VALUE4","h5":"VALUE5"}}};
12
20
 
13
- console.log(res);//{"H1":{"H2":10, "H3":{"H4":"VALUE4","h5":"VALUE5"}}};
14
21
 
22
+
15
23
  ```
16
24
 
17
25
  宜しくおねがいします。