处理我需要向数组添加点的项目。以下是创建然后尝试将对象添加到数组的代码:
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允许你在数组中设置值吗?
答案 0 :(得分:2)
最后一个数组索引是points.length - 1
。现在,您正在寻找超出数组末尾的元素(undefined
)并尝试为其“0”属性赋值x
。不允许在undefined
上设置属性。
答案 1 :(得分: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;