javascript の便利さに隠れた罠
昨日このブログの左にある amazon のおすすめメニューを自動化しようと、
javascript でせっせとスクリプトを作っていたんですが、
あまり javascript に慣れてないせいか、思わぬ罠にひっかかりましたΣ(ノ∀`)ペシッ
私は元々C言語からプログラムの世界に入ったので、初めて javascript を見た時はビックリしたものです。
こんな曖昧でいいのか!?
変数の型とか意識しなくていいのか!?
メモリの概念は無いのか!?
VBとかでも同じようなことが言えますね。
そんなことを感じながらプログラムを作ってると、こんな場面になりました。
これは、RSSの内容から画像の部分だけ抜き出して、文字列を抜き出すという内容ですが・・・
エラーになっちゃいます!!
エラーの内容としては substring なんて img_url[i] の関数に無いぜ!
といった感じのエラーでした。
なんでだよ! img_url[i] は文字列なんだから、文字列関数使えるだろ!?
と一人でイライラしながら、色々試してみましたが、結果は変わらず。
えらー、エラー、エラー。
(#゚Д゚)y-~~イライラ
結局よくわからず、文字列関数を使わない別の方法で解決しました。
で、今日またふとコードを見て見たら「アレ?これって・・・」
という風にひらめきました。
結果としてはこうゆうことです。
img_url[i] は配列なので、 Array 型なのです。
そりゃあ String 型の関数は使えないですよね。
だから、 一度 String 型の変数に入れて、文字列操作しました。
いや〜久しぶりにC言語やってた頃の気持ちを思い出しました。
思えばC++プログラマとして入社したにも関わらず、
今は全くプログラミングしてないですからね(゚∀゚)
今の主な業務は Excel 使った集計とか、マーケティング、企画ですから・・・
Excel は VBA フル活用ですけどね!!
開発じゃない部署で VBA とかしてるとスゴイ人だと勘違いされるのです、
(ΦωΦ)フフフ…
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 とかしてるとスゴイ人だと勘違いされるのです、
(ΦωΦ)フフフ…