sukceson’s diary

日々つまずいたこと

連番にした変数をforで回して使いたい

何がしたいかうまく説明できないことだけど、つまづいたのでメモ。

オブジェクトを文字列に変換したいというか、変数を文字列で指定したいというか・・・。

 

下のだと、('time0'+i)のところが文字列になってしまって、forで回してスマートにしようっていうのに失敗

        var time01 = '11:00~',
              time02 = '13:00~',
              time03 = '15:00~',
              time04 = '午前',
              time05 = '午後';

        for(var i=1;i<=n;i++){
              t = 'time0'+ i;
              td.append('<p>'+('time0'+i)+ '</p>');
       }

 

それで、

オブジェクトtextに、触りたいものをプロパティとして入れる。

text[文字列]だとオブジェクトの中身を文字列でアクセスできた。

        var text = {
            time01 : '11:00~',
            time02 : '13:00~',
            time03 : '15:00~',
            time04 : '午前',
            time05 : '午後'
        }

        for(var i=1;i<=n;i++){
            t = 'time0'+ i;
            $td.append('<p>'+text['time0'+i]'</p>');
        }

 

このへんのページ参考になるかと思ったけど難解。。

JSONらしき文字列をオブジェクトに変換するJavaScript - Takazudo hamalog