在Javascripts中将对象插入数组会引发未捕获的TypeError

在Javascripts中将对象插入数组会引发未捕获的TypeError,javascript,Javascript,我正在创建pos对象并将其插入数组中 下面是非常好的代码。 var pos1={lat:25,long:56}; var pos2={lat:100,long:200}; var pos3={lat:-63,long:-29}; var objects=[]; objects.push(pos1); objects.push(pos2); objects.push(pos3); console.log(objects[0].lat+","+objects[0].long); console.lo

我正在创建pos对象并将其插入数组中

下面是非常好的代码。

var pos1={lat:25,long:56};
var pos2={lat:100,long:200};
var pos3={lat:-63,long:-29};
var objects=[];
objects.push(pos1);
objects.push(pos2);
objects.push(pos3);
console.log(objects[0].lat+","+objects[0].long);
console.log(objects[1].lat+","+objects[1].long);
console.log(objects[2].lat+","+objects[2].long);
输出

然后,我尝试在循环中插入一些使用随机数的对象。正是在这一点上,它产生了错误

未捕获类型错误:当Pos对象在循环之外时

var locations=[];
var pos={lat:0,long:0}; //Here post object is outside the loop
size=10;
for(var i=1;i<=size;i++){

var x=Math.floor(1+Math.random()*10);
var y=Math.floor(1+Math.random()*10);
pos.lat=x;
pos.long=y;
locations.push(pos);
}

for(var i=1;i<=size;i++){
console.log(locations[i].lat+","+locations[i].long);
}
var locations=[];

size=10;
for(var i=1;i<=size;i++){
var pos={lat:0,long:0};   //pos object inside the loop
var x=Math.floor(1+Math.random()*10);
var y=Math.floor(1+Math.random()*10);
pos.lat=x;
pos.long=y;
locations.push(pos);
}


for(var i=1;i<=size;i++){
console.log(locations[i].lat+","+locations[i].long);
}
var位置=[];
var pos={lat:0,long:0}//这里,post对象在循环之外
尺寸=10;

对于(var i=1;i
i
应该从
0
开始,如下所示:

for(var i=0;i < size;i++){
    console.log(locations[i].lat+","+locations[i].long);
}
for(变量i=0;i

由于
数组
索引从
零开始
并以小于其大小的1结束。

在编程中,数组索引从零开始 因此,当大小为5时,例如索引为0、1、2、3、4..查看最后一个索引是如何为4


在你的例子中,你迭代到
数组索引从0开始,所以
i
必须从0开始,并且应该只从
开始。你没有考虑数组索引从零开始。谢谢@charlietfl,我真的很失望,我没有意识到………这些是最基本的。。。。。。。。。。。。。。。