質問編集履歴
4
すみません、色々と説明不足な上、切り貼りしたコードによってそもそもおかしな記述となっていた部分を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,21 +6,13 @@
|
|
6
6
|
|
7
7
|
以下の関数を定義して呼び出したところ、
|
8
8
|
|
9
|
-
何故か```trees.length === 0```の時も
|
9
|
+
何故か```trees.length === 0```の時も実行されてしまいます。
|
10
10
|
|
11
|
-
|
11
|
+
本来はarrのlength分だけ関数呼び出しを行いたい(今回で言うと三回)のですが、
|
12
12
|
|
13
|
-
|
13
|
+
実際にはarr.lengthが0のときも呼び出しが行われてしまうので、
|
14
14
|
|
15
|
-
dataExtracter(result, trees, param);
|
16
|
-
|
17
|
-
}
|
18
|
-
|
19
|
-
```
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
15
|
+
datasがundefinedになってしまいます。
|
24
16
|
|
25
17
|
|
26
18
|
|
@@ -134,4 +126,4 @@
|
|
134
126
|
|
135
127
|
初めてプログラムで再帰関数を使用したのですが、
|
136
128
|
|
137
|
-
何か考え方が間違っているのでしょうか。
|
129
|
+
何か考え方が間違っているのでしょうか。R
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,7 +92,9 @@
|
|
92
92
|
|
93
93
|
function dataExtracter(datas, trees, param) {
|
94
94
|
|
95
|
-
|
95
|
+
if (!trees.length) return datas;
|
96
|
+
|
97
|
+
|
96
98
|
|
97
99
|
datas.map(function(item) {
|
98
100
|
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -64,7 +64,17 @@
|
|
64
64
|
|
65
65
|
]
|
66
66
|
|
67
|
-
}
|
67
|
+
},
|
68
|
+
|
69
|
+
{...},
|
70
|
+
|
71
|
+
{...},
|
72
|
+
|
73
|
+
.
|
74
|
+
|
75
|
+
.
|
76
|
+
|
77
|
+
.
|
68
78
|
|
69
79
|
]
|
70
80
|
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
nodejsでwebページの解析をするため、htmlparserで生成したjsonの抽出機能を作成するため、
|
6
6
|
|
7
7
|
以下の関数を定義して呼び出したところ、
|
8
8
|
|
@@ -28,9 +28,55 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
+
// htmlparserで取得したデータのサンプルです。
|
32
|
+
|
33
|
+
// 取得するデータはwebページにより異なり、順番やデータ数は変化するものとお考えください。
|
34
|
+
|
35
|
+
var datas = [
|
36
|
+
|
37
|
+
{
|
38
|
+
|
39
|
+
name: html,
|
40
|
+
|
41
|
+
children: [
|
42
|
+
|
43
|
+
{
|
44
|
+
|
45
|
+
name: head,
|
46
|
+
|
47
|
+
children: [
|
48
|
+
|
49
|
+
{
|
50
|
+
|
51
|
+
name: meta,
|
52
|
+
|
53
|
+
children: [{...},{...}, ...]
|
54
|
+
|
55
|
+
},
|
56
|
+
|
57
|
+
{
|
58
|
+
|
59
|
+
name: title,
|
60
|
+
|
61
|
+
children: [{...},{...}, ...]
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
]
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
]
|
70
|
+
|
71
|
+
}
|
72
|
+
|
73
|
+
];
|
74
|
+
|
75
|
+
|
76
|
+
|
31
77
|
var arr = [ 'html', 'head', 'title' ],
|
32
78
|
|
33
|
-
result = dataExtracter(
|
79
|
+
result = dataExtracter(datas, arr, 'name');
|
34
80
|
|
35
81
|
|
36
82
|
|