Help us understand the problem. What is going on with this article?

茨城県と栃木県のデータがおかしいときに確かめること

More than 5 years have passed since last update.

都道府県別のデータを扱う機会ってありますよね.
私もとあるサービスの都道府県別データを解析しておりました.

 $ wc -l location_data/location-*.csv | sort | head
       0 location_data/location-8.csv
       0 location_data/location-9.csv
      12 location_data/location-38.csv
      14 location_data/location-36.csv
      20 location_data/location-31.csv
      26 location_data/location-32.csv
      29 location_data/location-16.csv
      33 location_data/location-18.csv
      48 location_data/location-39.csv
      52 location_data/location-35.csv

あれ,8と9がおかしい.いくらなんでもゼロってことはないだろう...
ちなみに8と9というのは茨城県と栃木県の都道府県コード(JIS規格)です.

http://www.kenchikushikai.or.jp/touroku/documents/code-todoufuken.pdf

なにかがおかしいなぁ.

parseInt("08") と parseInt("09") は "0" になる!!!!

いろいろ調べてたらたどり着きました.

javascript parseInt() 08 09 ではまる。

嘘だろと思って,近くにあった mongo shell でたしかめました.

> parseInt("09")
0
> parseInt("08")
0
> parseInt("07")
7

本当でした.

> parseInt("09", 10)
9
> parseInt("08", 10)
8
> parseInt("07", 10)
7

第二引数で10進数だよ〜と指定すればよいそうです.幸いDBには "08", "09" 形式で格納されていたので大事に至らなそうです.

これがDBに格納するときに "0" になっていたらガクブルです.

茨城県と栃木県のデータがおかしいときは,parseInt を思い出しましょう.
そして,テストデータには茨城県と栃木県を含めましょう.

cheekit
〜 Make Local Happiness 〜 クラウドソーシング受託を通じて地域のワクワクを増やすベンチャー
http://cheekit.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away