0
2次元配列を作成し、要素で埋めたいと思っています。すべてのサブアレイで、1つのランダムな数字にする必要があります。 n個の反復までのように配列を配列にプッシュ
rowsarr at iteration 0: *,*,*,*,*,*,*,7,*,*,*
colsarr at iteration 0: *,*,*,*,*,*,*,7,*,*,*
rowsarr at iteration 1: *,*,*,*,*,*,*,7,*,*,*
colsarr at iteration 1: *,*,*,*,*,*,*,7,*,*,*,*,*,*,*,*,*,*,7,*,*,*
rowsarr at iteration 2: *,*,*,3,*,*,*,*,*,*,*
colsarr at iteration 2: *,*,*,3,*,*,*,*,*,*,*,*,*,*,3,*,*,*,*,*,*,*,*,*,*,3,*,*,*,*,*,*,*
と:
var n = 11; //number of elements in subarray
var listofnumbers = [];
var rows = [];
var cols = [];
var rand;
//fill listofnumbers array by numbers
for(i=0; i<=n-1; i++) {
listofnumbers[i] = n - i;
}
//reverse listofnumbers array
listofnumbers.reverse();
//fill array 'cols' with another arrays
for(k=0; k<=n-1; k++) {
rand = listofnumbers[Math.floor(Math.random()*listofnumbers.length)]; // random digit from listofnumbers array
for(j=0; j<=n-1; j++) {
if(j == rand-1) {
rows[j] = rand-1;
} else {
rows[j] = "*";
}
}
console.log("rowsarr at iteration " + k + ": " + rows);
cols[k] = rows;
console.log("colsarr at iteration " + k + ": " + cols);
}
は、何らかの理由で、出力は次のようなものです。
質問1:なぜ "cols"配列は、最後に生成された "rows"配列ですべての要素を満たすのですか?最後に生成された配列 "行"を最後までプッシュします。
質問2: cols = [[n、n、n、n]、[n、n、n、n、n]、...]のような2次元配列を得るにはどうすればよいですか?今、私はcols = [n、n、n、n、n、n、n、n、n、n、n、n、n]だけですか?現時点で
私のコードは次のようになります。https://jsfiddle.net/qqf3fL5L/10/
'それはすべきですプッシュ 'を除いて - 何かをどこにでもプッシュしないでください –
最終出力は何でしょうか?乱数で埋められた2次元配列? – Weedoze
このcols.push(rows)を使用します。 cols [k] =行の代わりに。 – JYoThI