用于循环跳过矩阵内的循环的Javascript
问题描述:
我一直在敲我的头一阵子,试图找出为什么我的for循环跳过矩阵中的旋转。我试图将它打印出来[[1,2,3,4,5],[2,3,4,5,6],[4,5,6,7,8]],这是整体的矩阵。用于循环跳过矩阵内的循环的Javascript
function solve(args)
{
let arr = args[0].split(' ').map(Number),
rows = +arr[0],
cols = +arr[1];
let matrix = new Array(rows);
matrix.fill();
for (let i in matrix)
{
matrix[i] = new Array(cols);
}
for (let row = 0; row < rows; row++)
{
matrix[row][0] = Math.pow(2, row);
for (let col = matrix[row][0]; col < cols; col++)
{
matrix[row][col] = +col + 1;
}
}
console.log(matrix);
}
solve([
'3 5'
]);
P.S.我也试过这个:
for (let row = 0; row < rows; row++)
{
matrix[row][0] = Math.pow(2, row);
for (let col = matrix[row][0]; col < cols; col++)
{
matrix[row][col] = +col + matrix[row][0];
}
}
答
我希望这可以帮助你。虽然开始具有一定的价值作为第一个元素(矩阵[行] [0]),您可以通过1反复增加的每一行:
function solve(args)
{
let arr = args[0].split(' '),
rows = +arr[0],
cols = +arr[1];
let matrix = new Array(rows);
matrix.fill();
for (let i in matrix)
{
matrix[i] = new Array(cols);
}
for (let row = 0; row < matrix.length; row++) {
matrix[row][0] = Math.pow(2, row);
for (let col = 1; col < matrix[row].length; col++) {
matrix[row][col] = col + matrix[row][0];
}
}
console.log(matrix);
return matrix;
}
solve([
'3 5'
]);
+0
看看这个答案。 – Blauharley
+0
PS:改进一点,使其更有效率。 – Blauharley
你真的想第三排,看起来像这样:4, 5,6,7,8],或者更像这样:[3,4,5,6,7]? – Blauharley
与我写的完全一样。 –