Javascript 二维数组未捕获类型错误:无法设置属性';0';未定义的

Javascript 二维数组未捕获类型错误:无法设置属性';0';未定义的,javascript,jquery,arrays,Javascript,Jquery,Arrays,我需要在我的页面中设置一些圆的动画,为了做到这一点,我试图将该圆存储在矩阵中 var elementWidth = parseInt($('#svg').width()); //Take container element's width var circleRadius = parseInt(elementWidth/10); //Calculate radius and the distance from a circle to another var circleMatrix = [[]]

我需要在我的页面中设置一些圆的动画,为了做到这一点,我试图将该圆存储在矩阵中

var elementWidth = parseInt($('#svg').width()); //Take container element's width
var circleRadius = parseInt(elementWidth/10); //Calculate radius and the distance from a circle to another
var circleMatrix = [[]]; //The 2d matrix
var s = Snap("#svg"); //Initialize Snap (it's a svg framework)
var x,y=0; //My index

for(var i=0; i<=elementWidth; i+=circleRadius){
  x=0;
  for(var m=0; m<=elementWidth; m+=circleRadius){
    console.log("y("+y+"): "+i+" x("+x+"): "+m);
    circleMatrix[y][x] = s.circle(m,i,50);
    x++;
  }
  y++;
}
var elementWidth=parseInt($('#svg').width()//获取容器元素的宽度
var circleRadius=parseInt(elementWidth/10)//计算半径和从一个圆到另一个圆的距离
var circleMatrix=[[]]//二维矩阵
var s=Snap(“#svg”)//初始化快照(它是一个svg框架)
变量x,y=0//我的索引

对于(var i=0;iJavaScript实际上没有二维数组;它有数组的数组

这一行:

var circleMatrix = [[]]; //The 2d matrix
创建一个带有one项的数组:一个空白数组。因此
circleMatrix[1]
(例如)是
未定义的

您必须在外部阵列中需要阵列的所有位置添加阵列。一种方法是添加:

if (!circleMatrix[y]) {
    circleMatrix[y] = [];
}
就在这一行之前:

circleMatrix[y][x] = s.circle(m,i,50);
例如:

var elementWidth=parseInt($('#svg').width();//获取容器元素的宽度
var circleRadius=parseInt(elementWidth/10);//计算半径和从一个圆到另一个圆的距离
var circleMatrix=[];//***已更改
var s=Snap(“#svg”);//初始化Snap(它是一个svg框架)
var x,y=0;//我的索引

对于(var i=0;iJavaScript实际上没有二维数组;它有数组的数组

这一行:

var circleMatrix = [[]]; //The 2d matrix
创建一个带有one项的数组:一个空白数组。因此
circleMatrix[1]
(例如)是
未定义的

您必须在外部阵列中需要阵列的所有位置添加阵列。一种方法是添加:

if (!circleMatrix[y]) {
    circleMatrix[y] = [];
}
就在这一行之前:

circleMatrix[y][x] = s.circle(m,i,50);
例如:

var elementWidth=parseInt($('#svg').width();//获取容器元素的宽度
var circleRadius=parseInt(elementWidth/10);//计算半径和从一个圆到另一个圆的距离
var circleMatrix=[];//***已更改
var s=Snap(“#svg”);//初始化Snap(它是一个svg框架)
var x,y=0;//我的索引

对于(var i=0;i,要在JavaScript中创建2D矩阵,必须执行以下操作:

var circleMatrix = [[],[],[]];

您必须提前知道一维是什么,或者在迭代外部循环时计划创建每个“行”。

要在JavaScript中创建二维矩阵,您必须执行以下操作:

var circleMatrix = [[],[],[]];

您必须提前知道一维是什么,或者在迭代外部循环时计划创建每个“行”。

[[]]
没有任何意义。Javascript不是那样工作的。@Oliver:这部分有意义:这是一个只有一个条目的数组,是一个空数组。@Oliver你如何声明一个数组,其中一个数组是它的第零个元素?Javascript怎么会不是那样工作的?
circleMatrix[1]
未定义。@T.J.Crowder是的,我想你是对的。这更像是它没有做他认为它在做的事情。
[[]
没有任何意义。Javascript不是那样工作的。@Oliver:这部分有意义:这是一个只有一个条目的数组,是一个空数组。@Oliver你如何声明一个数组,其中一个数组是它的第零个元素?Javascript怎么会不是那样工作的?
circleMatrix[1]
未定义。@T.J.Crowder是的,我想你是对的。这更像是它没有做他认为它在做的事情。