繁体   English   中英

JS 多维数组

[英]Multidimensional array with JS

伙计们,我正在尝试解决编程问题。 我必须生成一个包含由颜色表示的块的二维数组。

我想要达到的最终结果是这样的:

[4,4,4,4,4,4,4,4]
[2,2,1,1,1,1,1,1]
[2,2,1,1,1,1,1,1]
[3,6,5,5,6,5,5,3]
[3,6,6,5,5,6,6,3]


4: purple, occupies an entire line.
2: red, occupies two spaces on each line.
1: black occupies 6 spaces
3: orange, occupies 1 space of each line
6: blue, occupies 1 space
5: green occupies two line spaces

有谁能够帮助我? 我正在尝试做的代码是这样的:

let purple = [[4, 4, 4, 4, 4, 4, 4, 4]];
let red = [[2, 2], [2, 2]];
let black = [[1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1]];
let orange = [[3], [3]];
let blue = [[6]];
let green = [[5, 5]];

let elements = [purple, red, black, orange, blue, green];

for (let i = 0; i < elements.length; i++) {
    console.log(elements[i])
}

 let purple = [ [4, 4, 4, 4, 4, 4, 4, 4] ]; let red = [ [2, 2], [2, 2] ]; let black = [ [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1] ]; let orange = [ [3], [3] ]; let blue = [ [6] ]; let green = [ [5, 5] ]; let elements = [purple, red, black, orange, blue, green]; let grid = [ [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0] ]; for (let i = 0; i < elements.length; i++) { jloop: for (let j = 0; j < elements[i].length; j++) { yloop: for (let y = 0; y < grid.length; y++) { for (let x = 0; x < grid[y].length; x++) { if (grid[y][x]) continue; let space_on_this_line = grid[y].length - x; if (elements[i].length <= space_on_this_line) { for (let k = 0; k < elements[i][j].length; k++) { grid[y][x + k] = elements[i][j][k]; } if (++j>=elements[i].length) break jloop; continue yloop; } } } } } for (let y = 0; y < grid.length; y++) { console.log(grid[y].join("")); }

这样的事情,对吧?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM