var num='1'; var fruits1=['apple','banana','orange']; var fruit =(fruits+num)[1];
と言った具合に,fruits1のような名前が英単語と数字でできている配列を呼び出すときに、fruit+numのように英単語と数字を+でつないで呼び出せるようにしたいです(当然上記のコードでは動きません。あくまで例です)
どうすれば実現できるでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ベストアンサー
返答を読んでみて、あなたがやりたいのはこういう事かなと思いました。
無理なアプローチを考えるより、レベル指定で任意の配列を取り出せる関数を作った方が早いです。
javascript
1var fruit = [ 2 ['apple1', 'banana1', 'orange1'], 3 ['apple2', 'banana2', 'orange2'], 4 ['apple3', 'banana3', 'orange3'], 5]; 6 7var getFruit = function(level){ 8 return fruit[level - 1]; 9}; 10 11var level = 1; 12 13console.log(getFruit(level)); // ["apple1", "banana1", "orange1"]; 14 15level++; 16 17console.log(getFruit(level)); // ["apple2", "banana2", "orange2"] 18 19level++; 20 21console.log(getFruit(level)); // ["apple3", "banana3", "orange3"]
投稿2017/02/22 13:10
編集2017/02/22 13:11総合スコア2092
0
こういうことでしょうか?
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>タイトル</title> 6 <style type="text/css"> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 </style> 12</head> 13<body> 14<script> 15 var num = "1"; 16 var fruits1 = ['apple', 'banana', 'orange']; 17 18 function arr(arr_name1, arr_name2, index) { 19 var array_name = arr_name1 + arr_name2; 20 return (window[array_name][index]); 21 } 22 23 alert(arr("fruits", num, 0));//apple 24 alert(arr("fruits", num, 1));//banana 25 alert(arr("fruits", num, 2));//orange 26</script> 27</body> 28</html>
投稿2017/02/22 11:45
総合スコア14731
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
オブジェクトにすれば不可能ではありませんけど。。。
javascript
1var fruits1=['apple','banana','orange']; 2var fruits2=['pineapple', 'kiwi', 'melon']; 3var o = {fruits1: fruits1, fruits2: fruits2}; 4var num = 1; 5var fruit1 = o['fruits'+ num][1]; // fruit1 = 'banana'; 6var fruit2 = o['fruits' + (num + 1)][2]; // fruit2 = 'melon';
投稿2017/02/22 11:28
編集2017/02/22 11:36総合スコア4267
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こういうことじゃないんですか?
var fruit = fruits[1] + num;
追記
こうかな?
fruits1 = [ "apple", "banana" ]; num = 1; alert(eval("fruits" + num)[1]);
追記
別のアプローチです。
こちらが一般的によく使われます。
fruits = [["apple", "banana"], ["orange", "lemon"]]; fruit = fruits[0][1];
投稿2017/02/22 11:19
編集2017/02/22 12:06総合スコア28660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/22 11:31
2017/02/22 11:56
2017/02/22 11:58
2017/02/22 12:33
2017/02/22 23:44 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/22 13:39