0

处理一个需要向数组添加点的项目。这是创建然后尝试将对象添加到数组的代码:

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;

我得到的确切错误是Uncaught TypeError: Cannot set property '0' of undefined。每次按下按钮时都会运行此代码,并且已经ints设置了其他值。我认为 JavaScript 允许您随时在数组中设置值?

4

2 回答 2

2

最后一个数组索引是points.length - 1。现在您正在处理数组末尾之后的元素(即undefined)并尝试为其“0”属性分配x. undefined不允许设置属性。

于 2012-05-11T17:30:33.650 回答
1

您的数组包含:

var points = [
    [0,0]
]

然而

points[points.length]
//is
points[1]

这不存在。您必须先创建数组,然后才能实际向其中添加内容

这是一个示例

var length = points.length;  //cache value, since length is "live"
points[length] = [];         //using the cached length, create new array
points[length][0] = x;       //add values
points[length][1] = y;
于 2012-05-11T17:31:02.303 回答