Javascript数组变为null

时间:2017-01-31 13:31:13

标签: javascript arrays

我定义了二维数组,试图用嵌套循环填充它,但它只用正确的值填充第一维,其他维用空填充(或未定义),谢谢。

var Arr = [];
var i =0;

for(i=0;i<13;i++)
{
  Arr[i]=[];
}

var a=0,b=0;

for(a=0;a<13;a++)
{
  for(b=0;b<13;b++)
  {
    Arr[[a][b]]=AnotherArrWithRightValues[(13 * a) + b];
  }
}

4 个答案:

答案 0 :(得分:1)

Arr[[a][b]]应为Arr[a][b]

答案 1 :(得分:1)

Loksly的回答是正确的,但以不同的方式实施。要回答您的问题,请将Arr[[a][b]]替换为Arr[a][b]

完整代码:

var Arr = [];

for(var a = 0 ; a < 13 ; a++) {
  Arr[a] = [];
  for(var b = 0 ; b < 13 ; b++) {
    Arr[a][b]=AnotherArrWithRightValues[(13 * a) + b];
  }
}

答案 2 :(得分:0)

仅供记录,另一种实现相同目的的方法:

var Arr = [];
var i = 0, tmp;
var a, b;

for(a = 0; a < 13; a++){
    tmp = [];
    for(b = 0; b < 13; b++){
        tmp.push(AnotherArrWithRightValues[i++]);
    }
    Arr.push(tmp);
}

答案 3 :(得分:0)

试试这个,

var arr =[];

for(var a=0;a<13;a++)
  {
    arr[a] = new Array();
    for(var b=0;b<13;b++)
      {
        arr[a].push((13 * a) + b);
      }
  }

我希望这会对你有所帮助