例えば下記のようなコードがあります。(実際にはa-cではなくもっとたくさんの行で同じような処理を反復している状況です)
javascript
1$('.a_wrapper').hasClass('show') ? ary.a_wrapper = $('.a_wrapper').width() :0; 2$('.b_wrapper').hasClass('show') ? ary.b_wrapper = $('.b_wrapper').width():0; 3$('.c_wrapper').hasClass('show') ? ary.c_wrapper = $('.c_wrapper').width():0;
その処理する量がのちの追加したり順番を入れ替えることを想定すると、このような書き方は後ほど、管理しづらくなるため、
- 配列を作成し、反復処理をさせること
- 後に変更を加える場合には配列だけ調整させる
このようなことを想定して以下のような改修を検討しました。
javascript
1var ary =[]; 2var alphabet = ["a","b","c"]; 3var alphabet_wrapper = [ary.a_wrapper,ary.b_wrapper,ary.c_wrapper]; 4 for (var i = 0; i < alphabet.length; i++) { 5 $("."+alphabet[i]+"_wrapper").hasClass('show') ? alphabet_wrapper[i] = $("."+alphabet[i]+"_wrapper").width() :0; 6 }
ここで、変数名を配列に格納するようなvar alphabet_wrapper = [ary.a_wrapper,ary.b_wrapper,ary.c_wrapper];
のような処理ができないため、イメージ通りの動作をさせることができません。
このようなケースでスッキリと後で配列の個数が変動したり順番が変わってしまっても管理しやすくする良い術が思いつかずアドバイスをいただければ幸いです。
よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー