回答編集履歴

2

strict

2018/05/10 09:25

投稿

yambejp
yambejp

スコア114583

test CHANGED
@@ -38,6 +38,12 @@
38
38
 
39
39
  # 入れ子の入れ子
40
40
 
41
+ arguments.calleeは無名関数を再帰処理するときの自分自身です
42
+
43
+ strictで使えないなら、名前を付けてやるのが手っ取り早いかもしれません
44
+
45
+
46
+
41
47
  ```javascript
42
48
 
43
49
  var json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
@@ -67,3 +73,41 @@
67
73
  console.log(b);
68
74
 
69
75
  ```
76
+
77
+
78
+
79
+ # strict
80
+
81
+ ```javascript
82
+
83
+ "use strict";
84
+
85
+ const json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
86
+
87
+ const a=JSON.parse(json);
88
+
89
+ const b=[];
90
+
91
+ const func=(x)=>{
92
+
93
+ for(var i in x){
94
+
95
+ if(typeof x[i]=="string"){
96
+
97
+ b.push([i,x[i]]);
98
+
99
+ }else{
100
+
101
+ func(x[i]);
102
+
103
+ }
104
+
105
+ }
106
+
107
+ };
108
+
109
+ func(a);
110
+
111
+ console.log(b);
112
+
113
+ ```

1

ireko

2018/05/10 09:25

投稿

yambejp
yambejp

スコア114583

test CHANGED
@@ -35,3 +35,35 @@
35
35
  console.log(b);
36
36
 
37
37
  ```
38
+
39
+ # 入れ子の入れ子
40
+
41
+ ```javascript
42
+
43
+ var json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
44
+
45
+ var a=JSON.parse(json);
46
+
47
+ var b=[];
48
+
49
+ (function(x){
50
+
51
+ for(var i in x){
52
+
53
+ if(typeof x[i]=="string"){
54
+
55
+ b.push([i,x[i]]);
56
+
57
+ }else{
58
+
59
+ arguments.callee(x[i]);
60
+
61
+ }
62
+
63
+ }
64
+
65
+ })(a);
66
+
67
+ console.log(b);
68
+
69
+ ```