• ベストアンサー

変数内容が'変数名'の文字列なので、短く書きたい

下記のような変数が大量にあります。 変数内容は、全て'変数名'の文字列です。 var AAAAAAAQWE = 'AAAAAAAQWE', BACDCFRF = 'BACDCFRF', VZAAAWW = 'VZAAAWW',…… ・変数宣言を短く書き直したいのですが、何か良い方法はあるでしょうか? ・何度も同じことを書くのは非効率な気がするのですが…

  • re97
  • お礼率80% (601/744)

質問者が選んだベストアンサー

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.4

thisは基本的にはスコープチェーンに入っていないので thisのプロパティに設定しても this.AAAAAAAQWEとしないと参照できないですね。 (thisがグローバルオブジェクトの場合は、参照可能になります。) withを使えばオブジェクト名を省略して プロパティを参照できるようになります。 var array = ['AAAAAAAQWE','BACDCFRF','VZAAAWW']; var obj = {}; for(var i=0; i<array.length; i++) obj[array[i]] = array[i]; with(obj){  alert(AAAAAAAQWE); //withの中では、obj. を省略できる } withは非推奨なのであまり使いたくないですけどね。 > ・既存コード調整なので、存在意義はとりあえずおいといていただけると有難いです 変数を全部文字列に置換するような調整はできないのでしょうか? (AAAAAAAQWE → 'AAAAAAAQWE' みたいに置換すれば、変数宣言自体不要。)

re97
質問者

お礼

回答ありがとうございました。 >thisは基本的にはスコープチェーンに入っていない ・解説ありがとうございました ・3さんのコード、どうして動作しないのか疑問に思っていました >withの中では、obj. を省略できる ・withとか初めて見ました ・こういうのを知りたかったです >withは非推奨 ・これは使えそうだと思ったのですが、自分でも確認してみたら「ECMAScript 5 の strict mode では禁止」と書いてありました……。残念です >変数を全部文字列に置換するような調整 ・再度検討してみたいと思いますー

その他の回答 (3)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.3

先に配列に格納し、その後にループで指定することもできます。 var array = ['AAAAAAAQWE','BACDCFRF','VZAAAWW']; for(var i in array) var this[array[i]] = array[i]; alert(AAAAAAAQWE); ただ、やってることはまどろっこしいので、通常はそういう事態に陥らないように、仕様の方を変更したほうが早い場合が多いと思います。

re97
質問者

補足

回答ありがとうございました。 ・試すと「Uncaught SyntaxError: Unexpected token this」になります……

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

そのような変数自体に存在意義が無い気がするのですが、 どのような使われ方を想定している変数なのでしょうか?

re97
質問者

補足

返信ありがとうございました。 ・既存コード調整なので、存在意義はとりあえずおいといていただけると有難いです ・変数名を文字列で返すような方法ってないでしょうか?

noname#209524
noname#209524
回答No.1

変数内容を短くしたいのですね。  テキストエディタの一括置換機能を利用すれば、AAAAA→A5 のように一度に変数名は変えられます。複数の一括置換ができればベターですね。  ご参考まで。

re97
質問者

補足

回答ありがとうございました。 ・変数名の長さではなく、変数宣言する書き方でどうにかならないかなと思い、質問しました

関連するQ&A

  • 動的な変数名のつけ方について

    ■環境 OS:XP 言語:C++ コンパイラ:Visual C++ 2008 char*やstd::string等で格納された文字列を使用して 変数を宣言することは可能でしょうか。 用途として、テキストファイル等から文字列を取得し その文字列を変数名としてプログラミング内で使用するという方法を考えています。 よろしくお願い致します。

  • 文字列型の一般的な変数名は?

    おはようございます。 サンプルコードで 数値型の変数名は Dim i As Long のようにiをよく見かけます。 ただ、私が勉強不足のため 文字列型の変数名の一般的な文字に何が使われているのかわかりません。 (str?moji?など?) サンプルコードを書くときに使用する 文字列型の変数名を教えてください!

  • 変数の中の文字列から””を取り除く方法

    javascriptに関する質問です。 タイトル通りですが、 変数の中の文字列からダブルクォーテーションを取り除く方法はありますか? 以下は私がやりたいことの例です。 var a = "hello", b = "hi"; var greet = "a, b"; var c = greet.split(","); この結果は c = ["a", "b"] こうですが ここからダブルクォーテーションを除去して、 c = [a, b] と変数名にすることは可能ですか? 可能でしたらどのような方法があるでしょうか?

  • echoの直後に変数(文字列ではなく)を記述?

    echoの正しい記述方法についてご質問します。 echoの直後に変数(文字列ではなく)を記述する場合の質問です。この場合、echoを使用して「変数です」と出力(「」は、出力しません。)するには、以下の例の内、どの記述が正しい(又は最も良い)のでしょうか? 例1: <?php $var = "変数"; echo $var,'です'; ?> 例2: <?php $var = "変数"; echo ',$var,です'; ?> 例3: <?php $var = "変数"; echo '$var,です'; ?> また、上記よりもっと良い記述方法があれば、お教え下さい。 この質問の内容に関して詳細な情報が記載されているサイト等をご存知でしたら、お教え下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 変数を文字列として扱う方法

    VB初心者なのですが、 変数を、その変数のまま文字列で扱う方法がないかと悩んでいます。具体的に言うと、 たとえば、 Dim Bef(i,j) As String と宣言しておいて、 Bef(1,1)に、SCATTERBRAiN11 Bef(1,2)に、SCATTERBRAiN12 Bef(1,3)に、SCATTERBRAiN13 …… Bef(i,j)に、SCATTERBRAiNij という「文字列」を入れたいのです。 (最後の2文字i,jが、そのときの変数i,jの値。) これをFor構文を使って、 Bef(i,j)="SCATTERBRAiN" + i + j と書いたら、エラーになってしまいました。 iやjを、その変数に入っている数字の文字列として扱うには、どうすればいいのでしょうか。 よろしくお願いします。

  • DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?

    DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?

  • make時に任意な文字列を渡して変数に埋めこみたい

    make時に任意の文字列を渡して、あらかじめ宣言しているグローバルな変数に設定してコンパイルしたいのですが方法あるでしょうか?

  • 変数名を変数で指定するのに$_POST[

    http://oshiete1.goo.ne.jp/qa2691790.html の#1さんに,変数名を変数で指定できることを教わりました. 下記の3行目のように,です. for ($i=1;$i<=5;++$i){ if (${"var".$i}=="") { ${"errMsg".$i}=$i."が未入力"; } } ここで, (1) $_POST["form"] には「str」という文字列が入っています. (2) $Var には「10」という数値が入っています. (3) これらを結合し, どうしても $_POST["str10"] みたいな変数を作らなければならないのですが, ・<? echo $_POST["str" . $Var]; ?>では何も起こらず. ・<? echo $_POST[{"str" . $Var}]; ?>などと{}で括っても, Parse error: parse error, unexpected '{', expecting ']' in C:\temp.php on line 10. みたいなエラーになります. どういうのが正しい書き方でしょうか?

    • 締切済み
    • PHP
  • PHPから文字列を変数に割り当てたい

    変数aにPHPから文字列や空文字を割り当てたいのですが、 次のようなコードだと http://ideone.com/dHmbVY 「b is not defined」や「Unexpected token」といったエラーが出てしまいます・・・ 次のように var a = <?php echo 3 ?>; 文字列じゃなくて数字ならエラーが出ずに済むのですが、 どのように記述すればPHPから文字列を割り当てるとこができるのでしょうか?

  • javascriptで変数名

    javascriptで変数名を下記のような titleは同じでその後ろに1,2と生成する変数名を forなどで動的に生成するにはどうしたらいいのでしょうか。 生成した変数名に値を入れたいです。 var title1; var title2;

専門家に質問してみよう