如何在 Javascript 中使用 "for" 循环创建二维数组?
How to create 2d array using "for" loop in Javascript?
我需要编写一个程序,在第 (5) 行和第 (4) 列的变量“数字”中创建一个二维数组。数组的元素必须是从 1 开始到 20 结束的连续整数。我必须使用“for”循环。
[ 1, 2, 3, 4 ],
[ 5, 6, 7, 8 ],
[ 9, 10, 11, 12 ],
[ 13, 14, 15, 16 ],
[ 17, 18, 19, 20 ],
所以我想到了:
const numbers = [];
const columns = 4;
const rows = 5;
for (let i = 0; i < rows; i++) {
numbers [i] = [];
for (let j = 0; j < columns; j++){
numbers [i][j] = j + 1;
}
}
console.log(numbers);
但结果是五个相同的行,如下所示:
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ]
你知道如何解决吗?如何使第二行从 5 开始?
看起来像在第二个循环中,你应该 numbers [i][j] = j * i;
而不是
每次外部 for 循环开始新的迭代时,j 都会重置回 0,这就是为什么您总是获取以 1 开头的行。
要解决此问题,您可以在跟踪当前数字的 for 循环之外声明一个变量,并使用它代替 j,如下所示:
const numbers = [];
const columns = 4;
const rows = 5;
let currNum = 0;
for (let i = 0; i < rows; i++) {
numbers [i] = [];
for (let j = 0; j < columns; j++){
currNum++;
numbers [i][j] = currNum;
}
}
console.log(numbers);
这是一些更新的代码。您需要将 i*columns
添加到每个值
const numbers = [];
const columns = 4;
const rows = 5;
for (let i = 0; i < rows; i++) {
numbers[i] = [];
for (let j = 0; j < columns; j++){
numbers[i][j] = j + 1 + (i*columns);
}
}
console.log(numbers);
我需要编写一个程序,在第 (5) 行和第 (4) 列的变量“数字”中创建一个二维数组。数组的元素必须是从 1 开始到 20 结束的连续整数。我必须使用“for”循环。
[ 1, 2, 3, 4 ],
[ 5, 6, 7, 8 ],
[ 9, 10, 11, 12 ],
[ 13, 14, 15, 16 ],
[ 17, 18, 19, 20 ],
所以我想到了:
const numbers = [];
const columns = 4;
const rows = 5;
for (let i = 0; i < rows; i++) {
numbers [i] = [];
for (let j = 0; j < columns; j++){
numbers [i][j] = j + 1;
}
}
console.log(numbers);
但结果是五个相同的行,如下所示:
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ]
你知道如何解决吗?如何使第二行从 5 开始?
看起来像在第二个循环中,你应该 numbers [i][j] = j * i;
而不是
每次外部 for 循环开始新的迭代时,j 都会重置回 0,这就是为什么您总是获取以 1 开头的行。
要解决此问题,您可以在跟踪当前数字的 for 循环之外声明一个变量,并使用它代替 j,如下所示:
const numbers = [];
const columns = 4;
const rows = 5;
let currNum = 0;
for (let i = 0; i < rows; i++) {
numbers [i] = [];
for (let j = 0; j < columns; j++){
currNum++;
numbers [i][j] = currNum;
}
}
console.log(numbers);
这是一些更新的代码。您需要将 i*columns
添加到每个值
const numbers = [];
const columns = 4;
const rows = 5;
for (let i = 0; i < rows; i++) {
numbers[i] = [];
for (let j = 0; j < columns; j++){
numbers[i][j] = j + 1 + (i*columns);
}
}
console.log(numbers);