• 締切済み

Arrayオブジェクトを使った多次元配列の作り方

こんにちは。 JavaScriptで多次元配列を宣言したいのですが、 配列を宣言するのに使うArrayオブジェクトでの宣言方法がわかりません。 多次元配列を宣言することって、そもそも可能なのでしょうか? どうぞよろしくお願いします

みんなの回答

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.2

VBScriptで多次元配列を作成して、 JScriptでその配列を読み込む方法は? <HTML> <HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- Function CreateVBArray() Dim i, j, k Dim a(2, 2) k = 1 For i = 0 To 2 For j = 0 To 2 a(j, i) = k k = k + 1 Next Next CreateVBArray = a End Function --> </SCRIPT> <SCRIPT LANGUAGE="JScript"> <!-- function VBArrayTest(vba) { var i, s; var a = new VBArray(vba); for (i = 1; i <= a.dimensions(); i++) { s = "次元 "; s += i + " の上限値は "; s += a.ubound(i)+ " です。<BR>"; document.write(s); } } --> </SCRIPT> </HEAD> <BODY> <SCRIPT language="jscript"> VBArrayTest(CreateVBArray()); </SCRIPT> </BODY> </HTML>

amoban
質問者

お礼

お答えありがとうございます。 VBScriptは僕が全く使ったことが無いので(爆)、 理解という点でも次に見送らせていただくことにします。 なにせ、JavaScriptも始めて1週間ほどなので(笑)。 わざわざ答えていただいたのに、申し訳ありません。 本当にありがとうございました。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

とほほさんのページ http://tohoho.wakusei.ne.jp/js/array.htm#array に、2次元の配列のあつかいかたが載っています。 直接、多次元の配列を扱うことは出来ないと思います。

amoban
質問者

お礼

入れ子にするような形をとるのですね。 実はこれをやってみようかと思っていたのですが、 ちょっとやりかたが分からなかったのです。 これなら関数化してしまえば、楽に使えそうですね。 ありがとうございました。

関連するQ&A

  • array(array()); 多次元配列初期化?

    $hoge = array(array());で始まっているコードがあるのですが、 これは何をしているのでしょうか? ・多次元配列の初期化? ・$hoge = array();ではダメなのでしょうか?

    • ベストアンサー
    • PHP
  • 2次元配列を多次元配列にする。

    2次元配列を多次元配列にする。 PHP5で 2次元目はすべて同じキーの2次元配列を 2次元目のキーごとの内容を共通項にまとめて、 多次元配列にする方法を教えてください。 キーの数は膨大なので、関数の再帰呼び出し で、きれいに処理したいのです。 説明文では説明しきれないので、 やりたいことは↓の通りです。 array[0] = array([one] => "あ", [twe] => "う" [three] => "き"); array[1] = array([one] => "あ", [twe] => "う" [three] => "く"); array[2] = array([one] => "あ", [twe] => "え" [three] => "け"); array[3] = array([one] => "あ", [twe] => "え" [three] => "こ"); array[4] = array([one] => "い", [twe] => "お" [three] => "さ"); array[5] = array([one] => "い", [twe] => "お" [three] => "し"); array[6] = array([one] => "い", [twe] => "か" [three] => "す"); array[7] = array([one] => "い", [twe] => "か" [three] => "せ"); という配列があったら、これを↓のようにしたいです。 array( [あ] => array( [う] => array ("き", "く") [え] => array ("け", "こ") ) [い] => array( [お] => array ("さ", "し") [か] => array ("す", "せ") )   ) どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 3次元配列を1次元配列に

    例えば2次元配列だと, array[row*i+j] = a[n]; といったように1次元に直すことができますよね? 同様に3次元配列を1次元配列にしたい場合には arrayの中はどのような式をつかえばいいのでしょうか。 よろしくお願いします。

  • Arrayオブジェクトとforms配列

    以下のスクリプトを実行すると、(2)の所で「document.forms.GetFromArray is not found」 のエラーとなります。(ブラウザはFirefox)。 意図としてはArrayオブジェクトをカスタマイズして追加したGetFromArray()メソッドでforms配列を操作したいのですが... エラーメッセージからすると、「document.formsは配列(Arrayオブジェクト)では無い」と言っているようです。 この方法でforms配列を参照する方法を教えて下さい。 あるいは、Arrayオブジェクトではない、他のオブジェクトをカスタマイズするのでしょうか?お願いします。 <html> <head> <script type="text/javascript"> <!-- Array.prototype.GetFromArray=function(func){ for(var i=0;i<this.length;i++){ func(this[i]); } } function disp1(h){ alert(h); } function disp2(h){ alert(h.name); } function run(){ var array=new Array('dog','cat','fish'); array.GetFromArray(disp1); //(1) OK document.forms.GetFromArray(disp2); //(2) エラー } //--> </script> </head> <body> <form name="test"> <input type="text" name="bunrui" value="分類">/ <input type="text" name="detail" value="詳細">/ <input type="button" value="実行" onClick="run();"> </form> </body> </html>

  • [Javascript]多次元配列の宣言の仕方

    こんにちは。 Javascriptで少々複雑な処理を行おうと試みています。 配列を用いて処理させようと考えています。 3次元配列が必要です。 ただ、何かの文献でJavascriptは多次元配列は出来ないというようなことを呼んだ記憶があり、またどんな文献を見ても平面的な配列の宣言の方法ばかりが記載されています。 イロイロ試しては見たもののなかなかうまく動作しませんでした。 Javascriptで多次元配列、できませんか? 是非とも教えてください!!

  • 多次元配列は配列の配列である

    Java勉強中なんですが、参考書を読んでいて「多次元配列は、実際には配列の配列である。つまり、2次元配列(array[][])がある場合、実際にはこれをarray[0]、array[1]、array[2]、といった1次元配列に配列として扱う事ができる。」と書いてあり、例題で、 double array[][] = new double[5][]; array[0] = new double[500]; array[0] = new double[400]; array[0] = new double[300]; array[0] = new double[200]; array[0] = new double[100]; と書いてありました。これについてのこれ以上の説明はなく、理解できなくて困っています。ご教授宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Array()で配列の一次元部分と二次元部分に同時に値を代入するには

    class categoryInfo{  var $langName = array(   "app" => array(    "c" => "C&C++",    "java" => "Java",    "vb" => "Visual Basic.NET",(以下略)   ),   "markup" =>array(    "html" => "HTML",    "css" => "CSS"   ),   "web_app" => array(    "javascript" =>"JavaScript",    "php"=>"PHP",    "perl"=>"CGI/Perl"   ),  );  $langName[app] = "アプリケーション開発用言語";  $langName[markup] = "マークアップ言語";  $langName[web_app] = "Webアプリ"; } ・・・という風にしているのですが、当然ながら、最後の $langName[app] = "アプリケーション開発用言語"; などは、既に宣言した変数に値を代入する行為であるため、関数内で行うように、とのエラーメッセージが出力されてしまいます。  コンストラクタで宣言すれば良い話ではあるのですが、600行ほどあるファイルなので、別の場所で宣言すると面倒になってしまいます。  又、後々foreachを使うので、連想配列を用いている以上、Array()を使って順番を定義したいのです。  このArray()の中で、$langName['app']などの一次元部分に値を代入した上、$langName['app']['c']などの二次元の部分にも値を代入する方法はありますでしょうか?

    • 締切済み
    • PHP
  • 2次元配列

    2次元配列は宣言して生成しますが配列名が異なる配列を例えば100個用意するにはいちいち宣言していたらすごいプログラム量になるので何かいい方法はないでしょうか?付け足しで指定した個数(例えば100個)分名前の異なる2次元配列を生成するには? java初心者なのでサンプルプログラムがあるとありがたいです。よろしくお願いします。

  • VC++「オブジェクト参照がオブジェクト・・・・

    Stringで2次元配列をやりたいと思っているのですが、 array<array<String^>^>^ addr_eeprom02; このような宣言をしたのですが、 次のようなプログラムを実行使用とすると addr_eeprom02[cnt_test][1] = data->Substring( 1, 8 ); ビルドは通ったのですが、デバッグしていくと 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」 というエラーが出ます。 解決方法などありませんでしょうか?

  • JavaScriptで2次元配列を扱う方法

    C言語を少しだけやっていました。 JavaScriptで2次元配列作りたいのですが、上手くいきません。 var array[5][5]; array[0][0] = 21; document.write(array[0][0]); ↑を実行しても「21」と表示されません。 new array()とか色々試しましたが上手くいかないので質問させていただきました。 教えてください!

専門家に質問してみよう