質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

2回答

367閲覧

ランダム生成した整数と一致する名称の変数を取得したい

agepan

総合スコア66

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2017/11/01 01:45

編集2017/11/01 01:59

JavaScriptで質問です。
連番を付けた変数と、ランダムな整数を生み出すコードがあります。ランダムに生み出された整数と一致する連番変数を取得したいのですが、どのようにすれば良いでしょうか?

例えば下記のように、「word1」「word2」「word3」という変数があり、ランダムに生み出された整数が「2」であったとき、「word2」の内容である「みかん」を出したいという要望になります。

よろしくお願いいたします。

JavaScript

1var word1 = 'りんご'; 2var word2 = 'みかん'; 3var word3 = 'バナナ'; 4 5var random = 1 + Math.floor( Math.random() * 3 ); // 1〜3のいずれかの整数をランダムで生成 6 7alert('例えばrandom=2であった場合、「みかん」と表示させたい'); 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaya_ohashi

2017/11/01 01:55

連番を付けた「関数」と言っていますが、提示されたコードでは連番のついた「変数」です。どちらが正しいのでしょうか?
agepan

2017/11/01 01:58

ありがとうございます、「変数」の間違いでした…
guest

回答2

0

そういうものは普通は配列でやるんですが、どうしてもというのであればこうしてください

javascript

1var word1 = 'りんご'; 2var word2 = 'みかん'; 3var word3 = 'バナナ'; 4var num=2; 5console.log(window["word"+num])

※ちなみにこれはグローバル変数にかぎります
(グローバル変数はwindowのプロパティになる)

追記

メンバ変数のことを考えると、評判は悪いですがevalが現実的です

javascript

1function test(){ 2 var word1 = 'りんご'; 3 var word2 = 'みかん'; 4 var word3 = 'バナナ'; 5 var num=2; 6 console.log(eval("word"+num)); 7} 8test();

投稿2017/11/01 01:52

編集2017/11/01 02:04
yambejp

総合スコア114585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2017/11/01 08:51

ご回答ありがとうございました! 配列のこと頭からすっかり飛んでおりました…さっそくその他回答者さんの回答も含めまして、配列として処理させるコードを書きまして問題無く動いております。 頂いたコードの方法は初めて知りましたので、今後もさらに役に立つと思います。 ご回答ありがとうございました。
guest

0

ベストアンサー

訂正:質問意図とは離れた回答でした。2ならword2というのがポイントですね。失礼しました。
一応配列の実装のままコードを修正しました。

javascript

1var word1 = ..., word2 = ..., word3 = ...; 2 3var candidates = [, word1, word2, word3]; 4var r = 1 + Math.floor(Math.random() * candidats.length); 5var word = candidates[r]; 6console.log('r=' + r + ' selected word is ' + word);

ちょっとだけ指摘です。
変数word1~word3に入っている値の型は関数ではなく文字列です。

それはさておき、一番簡単なのは配列にすることだと思います。

javascript

1var word1 = ..., word2 = ..., word3 = ...; 2 3var candidates = [word1, word2, word3]; 4// こうした場合1, 2, ..., n よりも 0, 1, ..., (n-1)の方が扱いやすいです 5var r = Math.floor(Math.random() * candidats.length); 6var word = candidates[r]; 7console.log('r=' + r + ' selected word is ' + word);

投稿2017/11/01 01:54

編集2017/11/01 02:03
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

agepan

2017/11/01 08:49

ご回答ありがとうございました! 頂いた手法を参考にしまして、配列として格納させて取り出す方法に書き換えまして、今は正常に動いております。上記方法もとても参考になりました!ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問