1

私は今、javascript の多次元配列は少しばかげています。しかし、私のプログラムではそれを使用する必要があります。javascript を使用して動的な 3 列と m 行の配列を宣言し、ループ内でその配列に要素を挿入する必要があります。最後に、その配列を表示したいと思います。

   var x = new Array();
    for (var y=0; y<=counter; y++) {
    x[y] = new Array (3);
x[y][0]='a';
x[y][1]='b';
x[y][2]='c';
    }

あなたの助けは非常に高く評価されています...

4

4 に答える 4

1

配列は必要に応じて大きくなるため、配列の長さを宣言しても意味がありません。あなたが始めたものは大丈夫です。 http://books.google.ca/books?id=4RChxt67lvwC&pg=PA141&lpg=PA141&dq=JS+array+grow+as+needed?&source=bl&ots=tgY8BlGXm8&sig=_3jcH1LTmYi9QiXxn9pHROpbN1s&hl=en&sa=X&ei=7v60T_XwEXXn9pHROpbN1s&hl=en&sa=X&ei=7v60T_XwCEvQo=0AqevQo6=pageAqevQo6&pageAwA4ThggfGuo=ページJS%20array%20grow%20as%20needed%3F&f=false

http://www.codingforums.com/showthread.php?t=5198

注意してください。カウンターよりも 1 大きい配列が作成されます。これは for ループの b/c です。y<=counter と y が 0 から始まります。長さをカウンターにしたい場合は、次のように変更します。

    y<counter

配列を表示するには、for ネストされたループを検討することをお勧めします。

JS

for(var i=0; i<x.length; i++)
  for (var j=0; j<3; j++)
    alert(x[i][j]);

ここで、x は配列への参照です。配列全体を一度に印刷したい場合は、配列内の要素から文字列を作成し、それを印刷することを検討してください

function displayArray(x){
var stringArray='';
 for(var i=0; i<x.length; i++)
  for (var j=0; j<3; j++)
    stringArray+= x[i][j];
 alert(stringArray);

}

于 2012-05-17T13:45:44.610 に答える
0
try something like this..

var cols = 3;
var rows = 5;

createArray(cols,rows);

function createArray(cols,rows) {
    var newArray = [];
    for(i=0;i<cols;i++) {
        newArray[i] = [];
        for(j=0;j<rows;j++) {       
            newArray[i][j] = "["+i+"]"+"["+j+"]";
        }

    }   
    return newArray;
}
于 2012-05-17T11:22:24.613 に答える
0

このようなもの?

var x = [
    [
        [1, 2, 3],
        [4,5,6]
    ],
    [
        [7, 8, 9]
    ]   
];

alert(x[0][1][2]);

これが、JavaScript の変数の構文が必ずしも完璧なものとは限らない理由の 1 つです。Java との比較:

String[][][] x = new String[5][5][5];
于 2012-05-17T11:12:46.257 に答える
0

もしかしてこういうこと?

var sDataArray=MultiDimensionalArray(7,2); 
alert(sDataArray[0][0]); 

function MultiDimensionalArray(iRows,iCols) 
{ 
var i; 
var j; 
   var a = new Array(iRows); 
   for (i=0; i < iRows; i++) 
   { 
       a[i] = new Array(iCols); 
       for (j=0; j < iCols; j++) 
       { 
           a[i][j] = ""; 
       } 
   } 
   return(a); 
}

行が動的であるため、配列のリストが必要ですか? 行を追加して配列サイズを増やす方法も実行できます。

于 2012-05-17T11:13:53.410 に答える