• ベストアンサー

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

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

<script> var array=new Array(5); array[0] =new Array(5); array[0][0]=21; document.write(array[0][0]); </script>

newtgecko
質問者

お礼

ありがとうございます。私の思っていたのもです。 ですが、 var array=new Array(5); array[0] =new Array(5); array[4][4]=21; document.write(array[4][4]); にしたときに上手く「21」と表示ができませんでした。 どうしたよいでしょうか?

newtgecko
質問者

補足

どうやら、 var array=new Array(5); array[4] =new Array(5); array[4][4]=21; document.write(array[4][4]); ソースの2行目の配列変数arrayの要素を0→4にすれば、解決できました。

その他の回答 (1)

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

var array=[ [], [], [], [], [] ]; array[0][0] = 21;

newtgecko
質問者

お礼

お返答ありがとうございます。 すみません。質問内容の方に「初期化を使わずに」と書くのを忘れていました。 また、なにかありましたらよろしくお願いします。

関連するQ&A

  • 二次元配列について

    こんにちは。いつもお世話になっております。 JavaScriptで二次元配列(配列の入れ子)を作ろうとしています。 ソースは下記のとおりです。 var menu = new Array("朝食","昼食","夕食"); menu[0] = new Array(); menu[0][0] = "コーヒー"; menu[0][1] = "牛乳"; menu[1] = new Array(); menu[1][0] = "サラダ"; menu[1][1] = "サンドイッチ"; menu[2] = new Array(); menu[2][0] = "天ぷら"; menu[2][1] = "刺身"; document.write(menu[0],"は",menu[1][0] + "<br>" ); 最後のwriteメソッドを使用して 「昼食はサラダ」と表示したいのですが「コーヒー,牛乳はサラダ」 になってしまいます。 どう記述すればいいでしょうか?ネットでいろいろ検索してみましたが 分かりませんでした。 よろしくお願い申し上げます。

  • javascriptでhiddenに二次元配列を格納したい

    現在、Webのシステムでクライアント側のJavaScriptから サーバー側のPHPに値を渡そうと思ってます。 その際に、JavaScriptの配列と連想配列を組み合わせた二次元配列に 値を格納してサーバー側に渡そうと思ってます。 それで以下のような方法を試しているのですが、 hiddenに二次元配列を格納する方法が分からず困ってます。 分かる方がいらしたら教えて頂けますでしょうか。 よろしくお願いいたします。 =========================================== var actionName = document.forms[0].action; var bodyObj = document.body; var formObj = document.createElement("FORM"); var hiddenObj = document.createElement("HIDDEN"); formObj.name = "updateTest"; formObj.action = actionName; formObj.method = "post"; hiddenObj.name = "alltest[][]"; var norArr = new Array(); var hashArr = new Array(); var i = 1; hashArr['test'] = document.getElementById("test" + i).value; norArr[i-1] = hashArr; hiddenObj.value = hashArr; formObj.appendChild(hiddenObj); bobyObj.appendChild(formObj); formObj.submit();

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

    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
  • 配列を使って平均を求めるプログラムの異常 JavaScript

    配列を使って平均を求めるプログラムをJavaScriptで書いているのですが、 実行して得られる平均の値が異常です。(*具体的には後述します) 正しい書き方を教えていただけたら幸いです。 仕様は ・実行と同時にポップアップウインドウで、「生徒1~3」の点数を記入させる ・記入が終わると、ページに生徒の点数と、3人の平均点が表示される というものです。以下がソースです。 var array = new Array(3); var i; array[0] = prompt("生徒1の点数を入力してください。", ""); array[1] = prompt("生徒2の点数をを入力してください。", ""); array[2] = prompt("生徒3の点数を入力してください。", ""); for(i = 0; i < 3; i++){ document.write("生徒 ", i + 1 ); document.write(":", array[i], "<br>"); } var sum = array[0]; for(i = 0; i < 3; i++){ sum += array[i]; var mean = sum/3; } document.write("<hr>"); document.write("平均点: ", mean, "点", "<br>"); *平均値が異常というのは、例えば生徒1に10,生徒2に20,生徒3に30を入力した時の平均点が 3367343.3333333335になってしまう、というようなものです。 原因がわからず困り果てております。 どなたかご親切な方、よろしくお願いします。

  • 二次元配列

    質問失礼します。 二次元配列の練習中で、 nijigen = new Array(); nijigen[0] = new Array(0,0,0,0); nijigen[1] = new Array(0,0,0,0); nijigen[2] = new Array(0,0,0,0); nijigen[3] = new Array(0,0,0,0); という配列を作りました。 そして、その配列と同じ配置にされたボタンを押すと、その位置の配列の数値に「1」が代入されるというものです。 そこでですが、「配列の内容が全て1になった時」を検知出来るようにしたいのですが、どのようにすればよいのでしょうか。 よろしくお願いします。 //↓こうなった時に検知したいのです nijigen = new Array(); nijigen[0] = new Array(1,1,1,1); nijigen[1] = new Array(1,1,1,1); nijigen[2] = new Array(1,1,1,1); nijigen[3] = new Array(1,1,1,1);

    • ベストアンサー
    • Flash
  • PHPの配列をjavascriptへ渡したい

    PHPの配列をjavascriptの配列に渡したいのですがやり方がわかりません。 変数の渡し方ならわかるのですが配列はどう渡せばいいのでしょうか? for文を使って渡せばいいと思うんですがどうやればいいか分かりません。 <?php $filedata=file("data.txt");//javascriptに渡したい配列 ?> <script language="javascript"> var a=new Array();//PHPの配列をこの配列に入れたい </script> 何方か教えてください。

    • ベストアンサー
    • PHP
  • 二次元配列に数字をランダムに入れる

    --------------------------- | 2 | 3 | 7 | 4 | 1 || 17 |<横合計> --------------------------- | 6 | 1 | 2 | 3 | / || // | --------------------------- | 1 | / | / | / | / || // | --------------------------- | 2 | / | / | / | / || // | --------------------------- | 3 | / | / | / | / || // | --------------------------- --------------------------- | 14 | / | / | / | / || // |<全合計> --------------------------- <縦合計> このように表示される。 …という処理がしたいのですがどういう処理を書けば良いのかわかりません。 理解した(1)と(2)の乱数発生の文を書いておきます。 *二次元配列を作成* a = new Array(5) for (i = 0; i <= a.length-1; i++){ //1次元 a[i] = new Array(5) for (j = 0; j <= a[i].length-1; j++){ //2次元 a[i][j] = "["+ i +","+ j +"]" var g = ""; document.write(a[i][j]); } } *乱数を100回発生* var z = ""; for(k = 1; k <= 100; k++){ z = Math.round(Math.random()); //発生した乱数をzに代入 } 以上、 よろしくお願いいたします。

  • Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。

    Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。 var data = [ [1,2,3], [4,5,6], [7,8,9] ]; for (var i = 0; i < data.length; i++){ for (var j = 0; j < data[i].length; j++){ <--- ここで lengthのオブジェクトがNullというエラーになります。 alert(data[i][j]); } } よろしくお願いいたします。

  • 2つの配列を1つにするには?

    var listWords1 = new Array ("a","b","c","d"); var listWords2 = new Array ("e","f"); // という2つの配列を下のような一つの配列にするにはどうすればいいですか? var listWords3 = new Array ("a","b","c","d","e","f"); 試しに var listWords3 = new Array(); listWords3 = listWords1 + listWords2 などとやってみましたがやっぱりダメでした。(^^; またもやド素人の質問でごめんなさい。自分なりに様々なキーワードでgoogleしているのですが、基本的なことすぎるのか、なかなか答えをヒットすることができません。私のような初心者がJavaScriptを基礎の基礎から勉強できるサイトがありましたら、併せてご紹介いただけませんでしょうか?よろしくお願いいたします。m(_ _)m

  • JavaScriptでの動的な多次元配列の生成方法

    JavaScriptで多次元配列を生成する方法を教えて頂きたく思います。 現在下記の様なコードを作成しています。 resArrayNowという多次元配列を作っておいて、[name][point1][point2] というnx3次元配列を動的に作成したいと思っています。 しかし、下記の様なプログラムを作成したところ、 if(resArrayNow.length==0){ の中入ったところで、実行されなくなっているようで上手くいきません。 どなたか、JavaScriptの多次元配列を動的に作成していく方法をご教授下さい。 宜しくお願いいたします。 ----------------------------------------------------------------------- var resArrayNow = Array(); arrayAdd("tom,1,45"); arrayAdd("ken,2,61"); arrayAdd("mike,33,5"); function arrayAdd(msg){ // カンマで分割し配列に格納 var resArray = msg.split(","); /*resArrayNowに格納されているIPアドレスと同じアドレスからのメッセージ * だった場合はx,yの値を更新、アドレスがなかった場合は新たに配列を追加する */ if(resArrayNow.length==0){ resArrayNow[0][0]=resArray[0]; resArrayNow[0][1]=resArray[1]; resArrayNow[0][2]=resArray[2]; alert(resArrayNow.length); } else{ for(var i = 0;i < resArrayNow.length;i++){ if(resArrayNow[i][0] == resArray[0]){ resArrayNow[i][1]=resArray[1]; resArrayNow[i][2]=resArray[2]; }else if(i== resArrayNow.length-1){            /*最後までIPアドレスを探して一致するIPが *resArrayNowになかった場合は新たに配列を追加する。 */ resArrayNow[i+1][0]=resArray[0]; resArrayNow[i+1][1]=resArray[1]; resArrayNow[i+1][2]=resArray[2]; } } } }

専門家に質問してみよう