javascript の便利さに隠れた罠

昨日このブログの左にある amazon のおすすめメニューを自動化しようと、
javascript でせっせとスクリプトを作っていたんですが、
あまり javascript に慣れてないせいか、思わぬ罠にひっかかりましたΣ(ノ∀`)ペシッ

私は元々C言語からプログラムの世界に入ったので、初めて javascript を見た時はビックリしたものです。


こんな曖昧でいいのか!?

変数の型とか意識しなくていいのか!?

メモリの概念は無いのか!?


VBとかでも同じようなことが言えますね。
そんなことを感じながらプログラムを作ってると、こんな場面になりました。

img_url[i] = entry.content.match('http://ec.*images-amazon.com/images/I/.*jpg');
img_url[i] = img_url[i].substring(0, img_url[i].length - 17) + ".jpg";


これは、RSSの内容から画像の部分だけ抜き出して、文字列を抜き出すという内容ですが・・・

エラーになっちゃいます!!

エラーの内容としては substring なんて img_url[i] の関数に無いぜ!
といった感じのエラーでした。

なんでだよ! img_url[i] は文字列なんだから、文字列関数使えるだろ!?
と一人でイライラしながら、色々試してみましたが、結果は変わらず。

えらー、エラー、エラー。

(#゚Д゚)y-~~イライラ
結局よくわからず、文字列関数を使わない別の方法で解決しました。
で、今日またふとコードを見て見たら「アレ?これって・・・」
という風にひらめきました。

結果としてはこうゆうことです。

img_url[i] = entry.content.match('http://ec.*images-amazon.com/images/I/.*jpg');
tmp = new String(img_url[i]);
img_url[i] = tmp.substring(0, tmp.length - 17) + ".jpg";


img_url[i] は配列なので、 Array 型なのです。
そりゃあ String 型の関数は使えないですよね。
だから、 一度 String 型の変数に入れて、文字列操作しました。

いや〜久しぶりにC言語やってた頃の気持ちを思い出しました。
思えばC++プログラマとして入社したにも関わらず、
今は全くプログラミングしてないですからね(゚∀゚)

今の主な業務は Excel 使った集計とか、マーケティング、企画ですから・・・

Excel は VBA フル活用ですけどね!!

開発じゃない部署で VBA とかしてるとスゴイ人だと勘違いされるのです、
(ΦωΦ)フフフ…