我有一个全局数组,我正在尝试填充对象。我插入的第一个对象也作为一个单独的变量保存,并通过返回函数创建。
但是,一旦我将它添加到空数组,该数组将索引0列为null。尽管如此,在索引0处记录对象会返回正确的对象。
以下是相关代码:
var triangles;
function makePoint(x, y) {
var point = { x : x, y : y };
return point;
}
function makeTriangle(p1, p2, p3) {
var triangle = { p1 : p1, p2 : p2, p3 : p3 };
return triangle;
}
function makeSupertriangle(sizeX, sizeY) {
return makeTriangle(makePoint(-1 * sizeX, sizeY), makePoint(sizeX, sizeY), makePoint((sizeX / 2), -1 * sizeY));
}
function triangulate(points, sizeX, sizeY) {
triangles = [];
var supertriangle = makeSupertriangle(sizeX, sizeY);
triangles[0] = supertriangle;
console.log(triangles);
console.log(triangles[0]);
//...
}
triangulate([], 60, 40);
日志显示:
[Object]
0: null
length: 1
__proto__: Array[0]
Object {p1: Object, p2: Object, p3: Object}
p1: Object
p2: Object
p3: Object
__proto__: Object
有人知道为什么对象没有正确显示在数组中但仍然可以从它中访问吗?
我创建了一个小提琴here