回答編集履歴
2
更新履歴を追記
test
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
1
|
### 配列
|
4
2
|
|
5
3
|
|
@@ -82,4 +80,14 @@
|
|
82
80
|
|
83
81
|
|
84
82
|
|
83
|
+
|
84
|
+
|
85
|
+
### 更新履歴
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
- 2016/05/10 18:40 CSVパーサの説明を追加
|
90
|
+
|
91
|
+
|
92
|
+
|
85
93
|
Re: sarah358 さん
|
1
CSVパーサの使い方
test
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
### 配列
|
4
|
+
|
5
|
+
|
6
|
+
|
1
7
|
配列にして `for` もしくは `forEach` で繰り返し処理させてみてはどうでしょうか。
|
2
8
|
|
3
9
|
データをCSVで持っておき、配列に変換するジェネレータを作っておくと管理が楽になりそうです。
|
@@ -34,4 +40,46 @@
|
|
34
40
|
|
35
41
|
|
36
42
|
|
43
|
+
### CSVパーサ
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
管理面を考えるなら表データをcsvファイル化し、csvから配列に変換するCSVパーサを使うと良いと思います。
|
48
|
+
|
49
|
+
大分前に `rfc4180.js` を作りましたが、今見ると修正したい部分が多数あったので csv.js に作り直しました。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
- [csv.js: ES5 規定の JSON と同じインターフェースを持つCSVパーサ](https://gist.github.com/think49/009a8744c147a7013f14ea8913bd9027)
|
54
|
+
|
55
|
+
- [rfc4180.js](http://vird2002.s8.xrea.com/javascript/rfc4180.html)
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
var csvString = '"すいか","山梨","5","7000"\r\n"すいか","山梨","6","6000"\r\n"すいか","山梨","7","5000"\r\n"すいか","山梨","8","4000"\r\n"すいか","山梨","9","3000"',
|
62
|
+
|
63
|
+
array = CSV.parse(csvString);
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
console.log(Object.prototype.toString.call(CSV)); // [object CSV]
|
68
|
+
|
69
|
+
console.log(CSV.stringify(array) === csvString); // true
|
70
|
+
|
71
|
+
console.log(JSON.stringify(array)); // [["すいか","山梨","5","7000"],["すいか","山梨","6","6000"],["すいか","山梨","7","5000"],["すいか","山梨","8","4000"]]
|
72
|
+
|
73
|
+
```
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
`JSON.stringify(CSV.parse(csvString))` で配列初期化子を作り、静的HTML/JSに貼り付ける運用を想定しています。
|
78
|
+
|
79
|
+
csvファイルをGETして自動的に展開する方法もありますが、HTTPリクエストはタイムラグがあるので注意してください。
|
80
|
+
|
81
|
+
その方法を採用するなら csv.js と `XMLHttpRequest` を併用するか、`RFC4180#fileToArray` を利用するか。
|
82
|
+
|
83
|
+
|
84
|
+
|
37
85
|
Re: sarah358 さん
|