【问题标题】:Problem populating 2d Image Array in Javascript在 Javascript 中填充 2d 图像数组的问题
【发布时间】:2011-11-01 00:04:11
【问题描述】:

我需要一个 Javascript 中的 2d 图像数组,并编写了以下内容:-

  var arrImages = new Array(3,3);
  var strTemp;
  for (intX=0; intX<3; intX++)
  {
    for (intY=0;intY<3;intY++)
    {
      strTemp = "<br>arrImages[" + intX + "][" + intY + "]";
      try
      {
        arrImages[intX][intY] = new Image();
        document.write(strTemp + " - Success");
      }
      catch (err)
      {
        document.write(strTemp + " - Fail - " + err.description);
      }
    }
  }

这会在 IE 中生成以下内容:-

arrImages[0][0] - 成功
arrImages[0][1] - 成功
arrImages[0][2] - 成功
arrImages[1][0] - 成功
arrImages[1][1] - 成功
arrImages[1][2] - 成功
arrImages[2][0] - 失败 - 预期对象
arrImages[2][1] - 失败 - 预期对象
arrImages[2][2] - 失败 - 预期对象

在 Firefox、Chrome 和 Safari 中,“预期对象”显示为“未定义”。

有谁知道为什么 0,0 -> 1,2 成功但其他一切都失败了?

肖恩。

【问题讨论】:

    标签: javascript arrays image 2d


    【解决方案1】:

    现在改写为:-

      var arrImages = new Array();
      var strTemp;
      for (intX=0; intX<3; intX++)
      {
        arrImages[intX] = new Array();
        for (intY=0;intY<3;intY++)
        {
          strTemp = "<br>arrImages[" + intX + "][" + intY + "]";
          try
          {
            arrImages[intX][intY] = new Image();
            document.write(strTemp + " - Success");
          }
          catch (err)
          {
            document.write(strTemp + " - Fail - " + err.description);
          }
        }
      }
    

    谢谢,完美运行。

    【讨论】:

      【解决方案2】:
      var arrImages = new Array(3,3);
      

      等价于

      var arrImages = [3, 3];
      

      (Documentation on MDN here)

      所以arrImages[2] 是未定义的,其中索引 0 和 1 实际上包含对象。请注意,javascript 数组不是固定大小的,因此您在创建它们时不需要指定长度。

      您需要手动创建多维数组,例如:

      arrImages = new Array();
      for (intX=0; intX<3; intX++)
      {
        arrImages[intX] = new Array();
        ...
      

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 2022-01-23
        • 1970-01-01
        • 2016-06-11
        • 2013-11-05
        • 1970-01-01
        • 2021-09-27
        • 2011-05-24
        • 1970-01-01
        相关资源
        最近更新 更多