• ベストアンサー

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

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

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

ブラウザで実行するなら、グローバルオブジェクトのwindowを使って、 c = c.map(function(x){ return window[x.replace(" ","")]; でしょうか。 わかりやすく書くと、 c[0] = window[c[0]]; c[1] = window[c[1]]; ということです。 なお、splitした時点では、c の値は ["a","b"] ではなく ["a"," b"]なので、余計な空白を取り除く必要があります。

noname#257344
質問者

お礼

ご回答ありがとうございます。 希望通りの処理になりました! window["文字列"] とすると 文字列 を出力してくれるということですね。 どう検索してもでてこなかったので本当に助かりました。 ありがとうございました。

その他の回答 (1)

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

正面から回答するなら、 c = [a,b]; これはエラーです。 したがって、変数名にすることは不可能です。 残念ながら、何をしたいのかが分からないので、これ以上回答を建設できませんが、おそらくは最終的な目的に対してのアプローチ(ダブルクォーテーションを除去して変数名にすること)が間違っているので、目的を明確にしてアプローチそのものを質問されることをおすすめします。

noname#257344
質問者

お礼

ご回答ありがとうございます。 var a = "hello", b = "hi"; var c = [a,b]; console.log(c); これで得られた結果はエラーではなく、["hello","hi"] でしたので、間違いではないと思うのですが...。 しかしながら、目的に対するアプローチが間違っているかもしれないのは確かです。 何分javascriptを学び始めてから日が浅いもので...。 ごく単純なスクリプトで対応しているのが現状です。 アドバイスありがとうございました。

関連するQ&A