首页 > 解决方案 > 创建和填充 3D 数组 JavaScript

问题描述

我正在尝试用“rgb(255, 48, 144)”填充一个 3d 数组 (16x16x16),然后通过在数组 ( arr[15][3][9] ) 中找到这种颜色来绘制一个矩形。

这是我到目前为止所得到的:

var ctx = document.getElementById("canvas").getContext("2d");
var canvas = document.getElementById("canvas");

var arr = new Array(16)
for(var i = 0; i < arr.length; i++){

    arr[i] = new Array(16);

for(var j = 0; j < arr[i].length; j++){


        arr[i][j] = "rgb(255, 48, 144)";

        for(var k = 0; k < arr[i][j].length; k++){
            arr[i][j][k] = "rgb(255, 48, 144)";
        }

    }
}
ctx.fillstyle = arr[15][3][9];
ctx.fillRect(0, 0, 100, 100);
<!doctype HTML>
<html>

<head>
    <meta charset="UTF-8">
    <title> Fargekube </title>
</head>


<body>

    <canvas id="canvas" width="200" height="200"></canvas>
    
</body>
</html>

标签: javascriptarrays3d

解决方案


我认为你初始化你的 3 维数组不适。以下是您想要做的吗?

此外,它是fillStyle和不是fillstyle

var ctx = document.getElementById('canvas').getContext('2d');
var canvas = document.getElementById('canvas');

var dimensionSize = 16;

var arr = [];

for (var i = 0; i < dimensionSize; i += 1) {
  arr[i] = [];
  
  for (var j = 0; j < dimensionSize; j += 1) {
    arr[i][j] = [];
    
    for (var k = 0; k < dimensionSize; k += 1) {
      arr[i][j][k] = 'rgb(255, 48, 144)';
    }
  }
}

console.log(arr[15][3][9]);

ctx.fillStyle = arr[15][3][9];
ctx.fillRect(0, 0, 100, 100);
<!doctype HTML>
<html>

<head>
    <meta charset="UTF-8">
    <title> Fargekube </title>
</head>


<body>

    <canvas id="canvas" width="200" height="200"></canvas>
    
</body>
</html>


推荐阅读