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

回答編集履歴

2

strict

2018/05/10 09:25

投稿

yambejp
yambejp

スコア117876

answer CHANGED
@@ -18,6 +18,9 @@
18
18
  console.log(b);
19
19
  ```
20
20
  # 入れ子の入れ子
21
+ arguments.calleeは無名関数を再帰処理するときの自分自身です
22
+ strictで使えないなら、名前を付けてやるのが手っ取り早いかもしれません
23
+
21
24
  ```javascript
22
25
  var json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
23
26
  var a=JSON.parse(json);
@@ -32,4 +35,23 @@
32
35
  }
33
36
  })(a);
34
37
  console.log(b);
38
+ ```
39
+
40
+ # strict
41
+ ```javascript
42
+ "use strict";
43
+ const json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
44
+ const a=JSON.parse(json);
45
+ const b=[];
46
+ const func=(x)=>{
47
+ for(var i in x){
48
+ if(typeof x[i]=="string"){
49
+ b.push([i,x[i]]);
50
+ }else{
51
+ func(x[i]);
52
+ }
53
+ }
54
+ };
55
+ func(a);
56
+ console.log(b);
35
57
  ```

1

ireko

2018/05/10 09:25

投稿

yambejp
yambejp

スコア117876

answer CHANGED
@@ -16,4 +16,20 @@
16
16
  }
17
17
 
18
18
  console.log(b);
19
+ ```
20
+ # 入れ子の入れ子
21
+ ```javascript
22
+ var json='{"test1":"aaa","test2":{"first_name":"tarou","last_name":"hanako","test_test":{"test5":"xxx"}},"test3":{"email":"test@test.com","prefecture":"東京都"},"test4":"bbb"}';
23
+ var a=JSON.parse(json);
24
+ var b=[];
25
+ (function(x){
26
+ for(var i in x){
27
+ if(typeof x[i]=="string"){
28
+ b.push([i,x[i]]);
29
+ }else{
30
+ arguments.callee(x[i]);
31
+ }
32
+ }
33
+ })(a);
34
+ console.log(b);
19
35
  ```