openlang

引用整数网格

只要通过 pixelGrid[#][#] 引用 pixelGrid,代码就会停止工作。我试过用好几种方式声明 pixelGrid,但没有改善。赋值为 0 并显示它就没问题,可是赋值为同样等于 0 的 pixelGrid[0][0],程序就会在这里突然出错。不管是在条件里访问数组、用它更新数值,还是在其他地方访问,都是这样。


var pixelGrid;
for (let row = 0; row < 9; row++) {
    for (let column = 0; column < 9; column++) {
        pixelGrid[row][column] = 0;
    }
}
function redrawPixels() {
    // Shortened for simplicity
    ImageData.data[0] = 0; // Works fine.
    ImageData.data[0] = pixelGrid[0][0]; // Function stops, and ctx.putImageData no longer updates canvas.
}
从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    把变量当作数组使用之前,必须先用数组值初始化它,例如

    
    var pixelGrid = []; // <- add this
    for (let row = 0; row < 9; row++) {
        pixelGrid[row] = []; // <- and add this
        for (let column = 0; column < 9; column++) {
            pixelGrid[row][column] = 0;
        }
    }
    console.log(pixelGrid[0][0]);
    console.log(pixelGrid[0]);
    console.log(pixelGrid);

    结果如下。

    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, 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, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]]

    提示,检查控制台中的错误,可以帮助你发现这类问题。

    从英语翻译查看原文
  2. 固定链接

    问题在于你只声明了 pixelGrid,却始终没有把它初始化为二维数组。

    你现在写的是

    
    var pixelGrid;

    这意味着 pixelGrid 实际上是 undefined

    接着这一行就会失败

    
    pixelGrid[row][column] = 0;

    因为 JavaScript 实际尝试的是

    
    undefined[row][column]

    在这之前要先初始化数组

    
    var pixelGrid = [];
    从英语翻译查看原文

同一个问题的其他角度

  1. 在 Java Mail 中显示发件人名称而非邮箱地址

    我通过 Java Mail API 发送消息。邮件到达后,收件箱显示的是发件地址。我想用一些文本替代这个地址。这应该是可以的,因为我收到的 facebook 邮件在收件箱里显示 "Facebook - Message title",而不是 "mail…

    回复 2最近活动 java
  2. 从 TypeScript 访问 Dynamics CRM

    我的 CRM 代码在网页资源中运行,所以要获取实体数据,就得写成 这样来读取数据。 可惜用 typescript 编写时,这个表达式无法编译。现在我手动把 window.parent 加到 Xrm.Page 前面……(Xrm 类型定义已经装好了),这…

    回复 2最近活动 typescript
  3. Gleam 的 HTTP 响应头需要怎样的日期格式?

    我想发送一个 Date 响应头。所需的格式如下。 这是我目前尝试的代码。

    回复 3最近活动 gleam