JavaScript 2D数组未捕获类型错误
在一个需要向数组添加点的项目中工作。以下是创建并尝试向数组中添加对象的代码:JavaScript 2D数组未捕获类型错误,javascript,arrays,Javascript,Arrays,在一个需要向数组添加点的项目中工作。以下是创建并尝试向数组中添加对象的代码: var points = []; points[0] = []; points[0][0] = 0; //x-coord points[0][1] = 0; //y-coord points[points.length][0] = x; //Breaks on this line points[points.length][1] = y; 我得到的确切错误是未捕获的TypeError:无法设
var points = [];
points[0] = [];
points[0][0] = 0; //x-coord
points[0][1] = 0; //y-coord
points[points.length][0] = x; //Breaks on this line
points[points.length][1] = y;
我得到的确切错误是未捕获的TypeError:无法设置未定义的属性“0”。每次按下按钮时都会运行此代码,并且其他值已设置为
ints
。我认为JavaScript允许您在运行时设置数组中的值?最后一个数组索引是points.length-1
。现在,您正在寻址超过数组末尾的元素(未定义的元素),并尝试将其“0”属性的值指定为x
。不允许在未定义的上设置属性。最后一个数组索引是points.length-1
。现在,您正在寻址超过数组末尾的元素(未定义的元素),并尝试将其“0”属性的值指定为x
。不允许在未定义的上设置属性。您的数组包含:
var points = [
[0,0]
]
然而
points[points.length]
//is
points[1]
这是不存在的。必须先创建数组,然后才能向其中添加内容
您的阵列包含:
var points = [
[0,0]
]
然而
points[points.length]
//is
points[1]
这是不存在的。必须先创建数组,然后才能向其中添加内容
我建议改为使用对象数组:points=[];点[0]={x:0,y:0}代码>我建议改为使用对象数组:points=[];点[0]={x:0,y:0}代码>谢谢,我一发布,就意识到我正在初始化第二个数组,并且必须编写一个函数来实例化内部数组。谢谢你的及时回答!谢谢,我一发帖就意识到我正在初始化第二个数组,并且必须编写一个函数来实例化内部数组。谢谢你的及时回答!