回答編集履歴

3

例を修正

2016/02/14 12:31

投稿

ikeyan
ikeyan

スコア136

test CHANGED
@@ -70,6 +70,8 @@
70
70
 
71
71
  }
72
72
 
73
+ console.log(result);
74
+
73
75
  JSON.stringify(result, null, 2);
74
76
 
75
77
  ```

2

例の出力を追加

2016/02/14 12:31

投稿

ikeyan
ikeyan

スコア136

test CHANGED
@@ -58,26 +58,44 @@
58
58
 
59
59
  }
60
60
 
61
- var key = primarySubdivision;
62
-
63
- if (result[key] == null)
64
-
65
- result[key] = [];
66
-
67
- var data = $tds.eq($tds.length - 1).text()
61
+ $tds.eq($tds.length - 1).text()
68
62
 
69
63
  .split("、")
70
64
 
71
- .map(function (secondarySubdivision) {
65
+ .forEach(function (secondarySubdivision) {
72
66
 
73
- return prefecture + " " + secondarySubdivision;
67
+ result[prefecture + secondarySubdivision] = primarySubdivision;
74
68
 
75
69
  });
76
70
 
71
+ }
72
+
77
- [].push.apply(result[key], data);
73
+ JSON.stringify(result, null, 2);
74
+
75
+ ```
76
+
77
+
78
+
79
+ 出力は以下のようになります。
80
+
81
+ ```JSON
82
+
83
+ {
84
+
85
+ "北海道稚内市": "宗谷地方",
86
+
87
+ "北海道猿払村": "宗谷地方",
88
+
89
+ "北海道豊富町": "宗谷地方",
90
+
91
+ "北海道幌延町": "宗谷地方",
92
+
93
+ (...中略...)
94
+
95
+ "沖縄県与那国町": "与那国島地方"
78
96
 
79
97
  }
80
98
 
81
- console.log(result);
99
+ ```
82
100
 
83
- ```
101
+

1

例追加

2016/02/14 12:29

投稿

ikeyan
ikeyan

スコア136

test CHANGED
@@ -11,3 +11,73 @@
11
11
  これを利用すれば、「一次細分区域」に対応する全ての「二次細分区域の名称」を取得できます。
12
12
 
13
13
  まあ、一部に注*がありますが、大体は市区町村のようなので、なんとかなると思います。
14
+
15
+
16
+
17
+ 以下、注を処理しないデータを取ってみたので参考にしてみてください。
18
+
19
+ ```javascript
20
+
21
+ var $table = $('.data2').eq(0);
22
+
23
+ var $trs = $table.find('tr');
24
+
25
+ var primarySubdivision = null;
26
+
27
+ var prefecture = null;
28
+
29
+ var result = {};
30
+
31
+ for (var i = 1; i < $trs.length; ++i)
32
+
33
+ {
34
+
35
+ var $tds = $trs.eq(i).children('td');
36
+
37
+ if ($tds.length > 2) {
38
+
39
+ primarySubdivision = $tds.eq($tds.length - 3).text();
40
+
41
+ }
42
+
43
+ if ($tds.length > 3) {
44
+
45
+ prefecture = $tds.eq($tds.length - 4).text();
46
+
47
+ }
48
+
49
+ if (i <= 46) {
50
+
51
+ prefecture = "北海道";
52
+
53
+ }
54
+
55
+ if (i >= 362) {
56
+
57
+ prefecture = "沖縄県";
58
+
59
+ }
60
+
61
+ var key = primarySubdivision;
62
+
63
+ if (result[key] == null)
64
+
65
+ result[key] = [];
66
+
67
+ var data = $tds.eq($tds.length - 1).text()
68
+
69
+ .split("、")
70
+
71
+ .map(function (secondarySubdivision) {
72
+
73
+ return prefecture + " " + secondarySubdivision;
74
+
75
+ });
76
+
77
+ [].push.apply(result[key], data);
78
+
79
+ }
80
+
81
+ console.log(result);
82
+
83
+ ```